Unity3D 物理引擎之刚体部件(Rigidbody)详解
发表于2018-05-15
刚体能让你的游戏对象被物理引擎所控制,它能通过受到推力和扭力来实现真实的物理表现效果。可见在物理引擎中Rigidbody是必不可少的组件,下面介绍Rigidbody的各个属性:
Mass:质量
Drag:阻力,对象在运动时遇到的空气阻力,0表示没有空气阻力,好比丢一个东西出去,如果这个东西没有阻力的话,则会一直不停的向你丢的方向所运动。
Angular Drag:角阻力也称 扭矩力 , 扭矩力是 使物体发生转动的 一种特殊的力炬 。
Use Gravity:使用重力,开启后会受到重力影响。
Is Kinematic:是否开启动力学,开启后不在受物理引擎的影响,只能通过Transform属性来操作。此属性一般用来模拟平台的移动,或带有铰链关节链接刚体的动画。
Interpolate:插值,用于控制刚体运动抖动的情况,有以下三种值可选。
None:没有插值
Interpolate:内插值,基于前一帧的Transform来平滑此次的Transfomr。
Extrapolate:外插值,基于下一帧的Transform来平滑此次的Transform。
Collsion Detection:碰撞检测,用于控制避免高速运动的对象穿过其他对象而未发生碰撞。
Discrete:离散碰撞检测(默认值),与场景中其他多有碰撞体进行碰撞检测。
Continuous:连续碰撞检测,此模式对物理性能会有很大影响,如果不需要对快速运动的对象进行碰撞检测,就是用离散模式。
Continuous Dynamic:连续动态碰撞检测模式。
Constraints:约束,控制对刚体运动的约束。
Freeze Position:冻结位置,刚体对象在世界坐标系中的X,YZ,轴方向上的移动将无效
Freeze Rotation:冻结旋转
刚体会使对象在物理引擎下运动,真实模拟一个物体在现实世界中受到力后的行为。
通常如果使用了刚体来操作游戏对象时没必要再对其Transform进行操作。