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表示根据预测的下一桢的位置来做平滑插值
  1. None 不应用插值。
  2. Interpolate 根据前一帧的变换来平滑变换。
  3. Extrapolate 根据下一帧的估计变换来平滑变换。
  • Collision Detection 碰撞检测算法,用于防止刚体因快速移动而穿过其他对象

其中包含

  1. Collision Detection(碰撞检测方式):
    Discrete(离散):默认的碰撞检测方式。但若当物体A运动很快的时候,有可能前一帧还在B物体的前面,后一帧就在B物体后面了,这种情况下不会触发碰撞事件,所以如果需要检测这种情况,那就必须使用后两种检测方式。
  2. Continuous(连续):这种方式可以与有静态网格碰撞器的游戏对象进行碰撞检测。
  3. Continuous Dynamic(动态连续):这种方式可以与所有设置了2或3方式的游戏对象进行碰撞检测。
  4. Continuous Speculative:对刚体和碰撞体使用推测性连续碰撞检测。这也是可以设置运动物体的唯一 CCD 模式。该方法通常比基于扫掠的连续碰撞检测的成本更低。

Constraints 刚体运动的约束,包括位置约束和旋转约束,勾选表示在该坐标上不允许进行此类操作

  • Freeze Rotation && Freeze Position表示冻结旋转和移动(此时只能使用transform的移动和旋转方法)、

Info是不允许编辑的,是该刚体绑定物体的详细信息。

提示

  • 两个刚体的相对__质量__决定了它们相互碰撞时的反应情况。
  • 使一个刚体具有比另一个刚体更大的__质量__并不会使其在自由落体时降落得更快。要实现这一目的,请使用 Drag
  • 较低的 Drag 值会让对象看起来较重。较高的值会使其看起来较轻。Drag 的典型值为 .001(实心金属块)到 10(羽毛)之间。
  • 如果要直接操作对象的变换组件,但仍希望获得物理效果,请附加刚体并将其设为 Kinematic。
  • 如果要通过变换组件移动游戏对象,但希望接收 Collision/Trigger 消息,必须将刚体附加到正在移动的对象。
  • 如果直接将对象的 Angular Drag 属性设置为无穷大,无法使对象停止旋转。
分类: Unity3D

0 条评论

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注