UNITY物理系统[Colliders]

UNITY_Colliders

照常推荐Unity官方文档
本篇文章是介绍在游戏开发过程中,常用的物理组件(Box Collider,Rigidbody等)介绍一些基本的作用,和一些需要规避的地方。

Box Collider

Box Collider形状类似于箱子,所以也经常使用在地板,墙壁,坡道上;也是组合碰撞器用的最多的一种。

属性 功能
Is Trigger 如果启用,此碰撞器用于触发事件,并被物理引擎忽略。
Material 物理材料,确定与他们互动的方式
Center 碰撞器在物体空间种的位置
Size 碰撞器尺寸的大小

Capsule Collider

胶囊形碰撞器实际上是通过一个圆柱连接的两个球体,可以通过HeightRadius调节我们需要的形状。

属性 功能
Radius 碰撞器的半径
Height 碰撞器的高度
Direction 胶囊体纵方向的轴

Mesh Collider

网格碰撞器需要一个网格,会根据这个网格来创建碰撞器。该碰撞器的碰撞检测会比其他的碰撞器更加准确,标记Convex也会与其他碰撞器发生碰撞。

enter image description here

属性

属性 功能
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

球形碰撞器常用语球状物体。

enter image description here

可以通过半径来调整大小,除了应用与球状物体,还可以应用于掉落的巨石和其他需要滚动的物体。

Wheel Collider

enter image description here

轮胎形碰撞器主要应用于车辆。它具有内置的碰撞检测,车轮物理学和基于滑动的轮胎摩擦模型。

enter image description here

属性

属性 功能
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

enter image description here

属性

属性 功能
Terrain Data 地形数据
Enable Tree Colliders 树木的碰撞器将会启用

知识共享许可协议
作品繁星陨辰采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。

posted @ 2017-11-28 13:42  繁星陨辰  阅读(3565)  评论(0编辑  收藏  举报