Unity 基础 之 物体系统 -- 碰撞体属性介绍

1,528 阅读4分钟

这是我参与8月更文挑战的第21天,活动详情查看:8月更文挑战

概念

碰撞体 (Collider) 组件定义对象的形状以便用于物理碰撞。碰撞体是不可见的,其形状不需要与对象的网格完全相同,事实上,粗略近似方法通常更有效,在游戏运行过程中难以察觉。

碰撞体是物理组件中的一类,3D物理组件和2D物理组件有独特的碰撞体组件,它要与刚体一起添加到游戏对象上才能触发碰撞。如果两个刚体相互撞在一起,除非两个对象有碰撞体时物理引擎才会计算碰撞,在物理模拟中,没有碰撞体的刚体会彼此相互穿过。


常用碰撞体属性介绍

1、Box Collider:盒状碰撞体

盒状碰撞体是一个立方体外形的基本碰撞体,该碰撞体可以调整为不同大小的长方体,可用作门、墙、以及平台等 面板属性如下:

  • Edit Collider:碰撞体,选中可在Scene视图看到绿色的碰撞线,进行可视化编辑
  • Is Trigger:触发器,勾选该项,则该碰撞体可用于触发事件,并将被物理引擎所忽略
  • Material:物理材质
  • Center:中心,碰撞体在对象局部坐标中的位置
  • Size:大小,碰撞体再X、Y、Z方向上的大小

2、Sphere Collider:球形碰撞体

球形碰撞体是一个基于球体的基本碰撞体,球体碰撞体的三维大小可以均匀等地调节,但不能单独调节某个坐标轴方向的大小。

  • Radius:半径,球形碰撞体的大小
  • 其他属性同Box Collider

3、Capsule Collider:胶囊碰撞体

胶囊碰撞体是由一个圆柱体和与其相连的两个半球体组成,是一个胶囊形状的基本碰撞体,胶囊碰撞体的半径和高度都可以单独调节,可用在角色控制器或与其他不规则形状的碰撞结合来使用

  • Height:高度,该项用于控制碰撞体中圆柱的高度
  • Direction:方向,在对象的局部坐标中胶囊的纵向方向所对应的坐标轴,默认是Y轴
  • 其他属性同Box Collider

4、Mesh Collider:网格碰撞体

网格碰撞体通过获取网格对象并在其基础上构建碰撞,在与复杂网格模型上使用基本碰撞相比,网格碰撞体要更加精细,但会占用更多地系统资源

  • Smooth Sphere Collisions:平滑碰撞,在勾选该项后碰撞会变得平滑
  • Mesh:网格,获取游戏对象的网格并将其作为碰撞体
  • Convex:凸起,勾选该项,则网格碰撞体将会与其他的网格碰撞体发生碰撞
  • Wheel Collider:车轮碰撞体,车轮碰撞体是一种针对地面车辆的特殊碰撞体,它有内置的碰撞检测、车轮物理系统以及滑胎摩擦的参考体
  • Suspension Distance:悬挂距离,该项用于设置车轮碰撞体悬挂的最大伸长距离,按照局部坐标来计算,悬挂总是通过其局部坐标的Y轴延伸向下
  • Center:中心,该项用于设置车轮碰撞体在对象局部坐标的中心
  • Suspension Spring:悬挂弹簧,该项用于设置车轮碰撞体通过添加弹簧和阻尼外力使得悬挂达到目标位置
  • Forward Friction:向前摩擦力,当轮胎向前滚动时的摩擦力属性
  • Sideways Friction:侧向摩擦力,当轮胎侧向滚动时的摩擦力属性

5、Character Controller 角色控制器

角色控制器,角色控制器主要用于对第三人称或第一人称游戏主角的控制,并不使用刚体物理效果

  • Slope Limit:坡度限制,该项用于设置所控制的角色对象只能爬上小于或等于该参数值的斜坡
  • Step Offset:台阶高度,该项用于设置所控制的角色对象可以迈上的最高台阶的高度
  • Skin Width:皮肤厚度,该参数决定了两个碰撞体可以相互渗入的深度,较大的参数值会产生抖动的现象,较少的参数值会导致所控制的游戏对象被卡住,较为合理地设定上是:该参数值为Radius值的10%
  • Min Move Distance:最小移动距离,如果所控制的角色对象的移动距离小于该值,则游戏对象将不会移动
  • Center:中心,该参数决定了胶囊碰撞体再世界坐标中得位置,
  • Radius:半径,胶囊碰撞体的长度半径,
  • Height:高度,该项用于设置所控制的角色对象的胶囊碰撞体的高度