【unity3d】给物体加上collider碰撞器

在unity中需要两个物体能相互碰撞,就需要给它加上碰撞器(collider)
碰撞体是简单形状,如方块、球形或者胶囊形,在 Unity 3D 中每当一个 GameObjects 被创建时,它会自动分配一个合适的碰撞器

手动添加:
选中需要加collider的物体,在inspector面板,然后点击Add Component–Physics,可以看到有六种collider,分别是

Box Collider(盒碰撞器)
Sphere Collider(椭圆碰撞器)
Capsule Collider(胶囊碰撞器)
Wheel Collider(车轮碰撞器)
Mesh Collider(网格碰撞器)
Terrain Collider(地形碰撞器)

1) Box Collider
Box Collider 是最基本的碰撞体,Box Collider 是一个立方体外形的基本碰撞体。

一般游戏对象往往具有 Box Collider 属性,如墙壁、门、墙以及平台等,也可以用于布娃娃的角色躯干或者汽车等交通工具的外壳,当然最适合用在盒子或是箱子上。

下图所示是 Box Collider,游戏对象一旦添加了 Box Collider 属性,则在 Inspector 面板中就会出现对应的 Box Collider 属性参数设置,具体参数如下表所示。

Box Collider参数设置

参 数
Is Trigger 勾选该项,则该碰撞体可用于触发事件,并将被物理引擎所忽略
Material 为碰撞体设置不同类型的材质
Center 碰撞体在对象局部坐标中的位置
Size 碰撞体在X、Y、Z方向上的大小

如果 Is Trigger 选项被勾选,该对象一旦发生碰撞动作,则会产生 3 个碰撞信息并发送给脚本参数,分别是 OnTriggerEnter、OnTriggerExit、OnTriggerStay。

Physics Material 定义了物理材质,包括冰、金属、塑料、木头等。
2) Sphere Collider
Sphere Collider 是球体形状的碰撞体,如下图所示。

Sphere Collider参数设置

Sphere Collider 是一个基于球体的基本碰撞体,Sphere Collider 的三维大小可以按同一比例调节,但不能单独调节某个坐标轴方向的大小,具体参数如下表所示。

当游戏对象的物理形状是球体时,则使用球体碰撞体,如落石、乒乓球等游戏对象。

参 数
Is Trigger 勾选该项,则该碰撞体可用于触发事件,并将被物理引擎所忽略
Material 为碰撞体设置不同类型的材质
Center 设置碰撞体在对象局部坐标中的位置
Radius 设置球形碰撞体的大小

3) Capsule Collider
Capsule Collider 由一个圆柱体盒两个半球组合而成,Capsule Collider 的半径和高度都可以单独调节,可用在角色控制器或与其他不规则形状的碰撞结合来使用。

通常添加至 Character 或 NPC 等对象的碰撞属性,如下图所示,具体参数如下表所示。

Capsule Collider参数设置

参 数
Is Trigger 勾选该项,则该碰撞体可用于触发事件,并将被物理引擎所忽略
Material 为碰撞体设置不同类型的材质
Center 设置碰撞体在对象局部坐标中的位置
Radius 设置碰撞体的大小
Height 控制碰撞体中圆柱的高度
Direction 设置在对象的局部坐标中胶囊体的纵向所对应的坐标轴,默认是Y轴

4) Mesh Collider
Mesh Collider(网格碰撞体)根据 Mesh 形状产生碰撞体,比起 Box Collider、Sphere Collider 和 Capsule Collider,Mesh Collider 更加精确,但会占用更多的系统资源。

专门用于复杂网格所生成的模型,如下图所示,具体参数如下表所示。

Mesh Collider参数设置

参 数
Material 为碰撞体设置不同类型的材质
Convex 勾选该项,则Mesh Collider将会与其他的Mesh Collider发生碰撞
Mesh 获取游戏对象的网格并将其作为碰撞体

Mesh Collider效果较好,但占用资源较多

5) Wheel Collider
Wheel Collider(车轮碰撞体)是一种针对地面车辆的特殊碰撞体,自带碰撞侦测、轮胎物理现象和轮胎模型,专门用于处理轮胎,如下图所示,具体参数如下表所示。

Wheel Collider参数设置

参 数
Mass 用于设置 Wheel Collider 的质量
Radius 用于设置碰撞体的半径大小
Wheel Damping Rate 用于设置碰撞体的减震率
Suspension Distance 该项用于设置碰撞体悬挂的最大伸长距离,按照局部坐标来计算, 悬挂总是通过其局部坐标的 Y 轴延伸向下
Center 用于设置碰撞体在对象局部坐标的中心
Suspension Spring 用于设置碰撞体通过添加弹簧和阻尼外力使得悬挂达到目标位置
Forward Friction 当轮胎向前滚动时的摩擦力属性
Sideways Friction 当轮胎侧向滚动时的摩擦力属性

6)Terrain Collider
Terrain Collider 地形与物理引擎方面的组件,实现了地形的物理模拟,似的其他的挂载了物理碰撞器的物体能够与地形进行物理交互

参 数
Material 该地形的物理材质, 通过改变参数可以分别开发出像戈壁滩,软草地之类的效果;通过Create---->Physical Material来创建材质
Terrain Data 地形数据,用户存储该地形的地势以及其他的信息
Enable Tree Colliders 开启树木参与碰撞检测

一些充分&必要关系
碰撞器(Collider)不需要刚体(Rigidbody)
刚体(Rigidbody)要发生碰撞,一定需要碰撞器(Collider)
没有碰撞器的刚体(Rigidbody),会在场景中可以相互穿透

猜你喜欢

转载自blog.csdn.net/meyalo/article/details/123495395
今日推荐