UNITY物理系统[Colliders]
UNITY_Colliders
照常推荐Unity官方文档
本篇文章是介绍在游戏开发过程中,常用的物理组件(Box Collider,Rigidbody等)介绍一些基本的作用,和一些需要规避的地方。
Box Collider
Box Collider形状类似于箱子,所以也经常使用在地板,墙壁,坡道上;也是组合碰撞器用的最多的一种。
属性 | 功能 |
---|---|
Is Trigger | 如果启用,此碰撞器用于触发事件,并被物理引擎忽略。 |
Material | 物理材料,确定与他们互动的方式 |
Center | 碰撞器在物体空间种的位置 |
Size | 碰撞器尺寸的大小 |
Capsule Collider
胶囊形碰撞器实际上是通过一个圆柱连接的两个球体,可以通过Height和Radius调节我们需要的形状。
属性 | 功能 |
---|---|
Radius | 碰撞器的半径 |
Height | 碰撞器的高度 |
Direction | 胶囊体纵方向的轴 |
Mesh Collider
网格碰撞器需要一个网格,会根据这个网格来创建碰撞器。该碰撞器的碰撞检测会比其他的碰撞器更加准确,标记Convex
也会与其他碰撞器发生碰撞。
属性
属性 | 功能 |
---|---|
Convex | 勾选之后会启动Convex , 此网格碰撞器可以与其他碰撞器发生碰撞 |
注意
网格碰撞器会更好的契合模型的形状,可以得到更加精准的碰撞,同时性能的消耗也是需要注意的地方;慎用,如果只能使用Mesh Collider,那么我们可以在Import Settings
中禁用 Normals
物理系统不需要。
Mesh Collider限制:
- 没有Rigidbody组件的物体上仅支持不勾选Convex的mesh collider,如果要应用刚体请勾选。
- 在某些情况,为了Mesh Collider正常工作,需要勾选
Import Settings中的Read/Write Enable
。 这些情况包括:- 负比例缩放(-1,1,1)
- 剪切变换
Sphere Collider
球形碰撞器常用语球状物体。
可以通过半径来调整大小,除了应用与球状物体,还可以应用于掉落的巨石和其他需要滚动的物体。
Wheel Collider
轮胎形碰撞器主要应用于车辆。它具有内置的碰撞检测,车轮物理学和基于滑动的轮胎摩擦模型。
属性
属性 | 功能 |
---|---|
Mass | 质量 |
Radius | 半径 |
Wheel Damping Rate | 施加在轮胎上的阻力值 |
Suspension Distance | 车轮悬架的最大伸展距离;悬架总是通过Y轴向下延伸 |
Force App Point Distance | 这个参数定义了车轮力的施加点。这预计在离悬架行驶方向的静止位置处的车轮基部以米计。当forceAppPointDistance = 0 这些力量在轮子基地静止时被施加。一个更好的车辆将有轻微低于车辆重心的力量。 |
Center | 车轮中心 |
Suspension Spring | 悬架试图通过增加弹簧和阻尼力来达到Target Position |
Spring | 更大的值使悬架更快地到达目标位置 |
Damper | 减缓悬架速度。数值越大,悬架弹簧的移动速度越慢 |
Target Position | 悬架的距离沿悬架距离。1映射到完全扩展的悬架,0映射到完全压缩的悬架。默认值是0.5,这与普通汽车的暂停行为相匹配。 |
Forward/Sideways Friction | 当车轮向前和侧向滚动时的轮胎摩擦特性 |
注意
轮子的碰撞检测是通过从中心向下投射通过局部Y轴的光线来执行的。车轮有一个半径,可以根据悬架距离向下延伸。车辆通过使用不同属性的脚本进行控制:motorTorque,brakeTorque和steerAngle。
轮对撞机使用基于滑动的摩擦模型来与其他物理引擎分开计算摩擦。这允许更真实的行为,但也会导致车轮碰撞器忽略标准的物理材料设置。
转动轮胎的时候最好不要转动碰撞器,而是找到一个与碰撞器分开的物体来模拟车轮的转动。
Terrain Collider
属性
属性 | 功能 |
---|---|
Terrain Data | 地形数据 |
Enable Tree Colliders | 树木的碰撞器将会启用 |
本作品由繁星陨辰采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。