Unity3D的Rigidbody(刚体)
先看图,在Unity物体Component中绑定上Rigidbody之后,有如下参数:
Rigidbody在Unity3D中表示刚体,可以让游戏的对象受到物理引擎的控制,利用刚体,可以使物体收到推力、扭力、重力等力来模拟出真实的物理表现效果,并通过力与其他物体交互。
其中参数含义为:
- Mass 质量,单位为Kg,建议不要让对象之间的质量差达到100倍以上
- Drag 空气阻力,为0表示没有阻力,infinity表示立即停止移动
- Angular Drag 扭力的阻力,数值意义同上,一般有默认值0.05
- Use Gravity 是否受重力影响
- Is Kinematic 是否为Kinematic刚体,如果启用该参数,则对象不会被物理所控制,只能通过直接设置位置、旋转和缩放来操作它,一般用来实现移动平台,或者带有HingeJoint的动画刚体
- Interpolate 如果你的刚体运动时有抖动,尝试一下修改这个参数,None表示没有插值,Interpolate表示根据上一桢的位置来做平滑插值,Extrapolate表示根据预测的下一桢的位置来做平滑插值
- None 不应用插值。
- Interpolate 根据前一帧的变换来平滑变换。
- Extrapolate 根据下一帧的估计变换来平滑变换。
- Collision Detection 碰撞检测算法,用于防止刚体因快速移动而穿过其他对象
其中包含
- Collision Detection(碰撞检测方式):
Discrete(离散):默认的碰撞检测方式。但若当物体A运动很快的时候,有可能前一帧还在B物体的前面,后一帧就在B物体后面了,这种情况下不会触发碰撞事件,所以如果需要检测这种情况,那就必须使用后两种检测方式。 - Continuous(连续):这种方式可以与有静态网格碰撞器的游戏对象进行碰撞检测。
- Continuous Dynamic(动态连续):这种方式可以与所有设置了2或3方式的游戏对象进行碰撞检测。
- Continuous Speculative:对刚体和碰撞体使用推测性连续碰撞检测。这也是可以设置运动物体的唯一 CCD 模式。该方法通常比基于扫掠的连续碰撞检测的成本更低。
Constraints 刚体运动的约束,包括位置约束和旋转约束,勾选表示在该坐标上不允许进行此类操作
- Freeze Rotation && Freeze Position表示冻结旋转和移动(此时只能使用transform的移动和旋转方法)、
Info是不允许编辑的,是该刚体绑定物体的详细信息。
提示
- 两个刚体的相对__质量__决定了它们相互碰撞时的反应情况。
- 使一个刚体具有比另一个刚体更大的__质量__并不会使其在自由落体时降落得更快。要实现这一目的,请使用 Drag。
- 较低的 Drag 值会让对象看起来较重。较高的值会使其看起来较轻。Drag 的典型值为 .001(实心金属块)到 10(羽毛)之间。
- 如果要直接操作对象的变换组件,但仍希望获得物理效果,请附加刚体并将其设为 Kinematic。
- 如果要通过变换组件移动游戏对象,但希望接收 Collision/Trigger 消息,必须将刚体附加到正在移动的对象。
- 如果直接将对象的 Angular Drag 属性设置为无穷大,无法使对象停止旋转。
0 条评论