刚体 (RigidBody) 是实现游戏对象物理行为的主要组件。
属性:功能:Mass对象的质量(默认为千克)Drag根据力移动对象时影响对象的空气阻力大小。0 表示没有空气阻力,无穷大使对象立即停止移动。Angular Drag根据扭矩旋转对象时影响对象的空气阻力大小。0 表示没有空气阻力。请注意,如果直接将对象的 Angular Drag 属性设置为无穷大,无法使对象停止旋转Use Gravity如果启用此属性,则对象将受到重力影响Is Kinematic如果启用此选项,则对象将不会被物理引擎驱动,只能通过__变换 (Transform)__ 对其进行操作。对于移动平台,或者如果要动画化附加了 HingeJoint 的刚体,此属性将非常有用。Interpolate仅当在刚体运动中看到急动时才尝试使用提供的选项之一。- None不应用插值- Interpolate根据前一帧的变换来平滑变换- Extrapolate根据下一帧的估计变换Constraints对刚体运动的限制:- Freeze Position有选择地停止刚体沿世界 X、Y 和 Z 轴的移动。- Freeze Rotation有选择地停止刚体围绕局部 X、Y 和 Z 轴旋转。操控 Transform 和 RigidBody 最大的区别在于力的运用。刚体可以接受力和扭矩而变换不能。
要控制刚体,主要需要使用脚本来施加力或扭矩。要执行此操作,可在对象的刚体上调用 AddForce() 和 AddTorque()。请记住,在使用物理引擎时,不应直接改变对象的变换。
在某些情况下,主要需要创建布娃娃效果,因此有必要在动画和物理之间切换对象的控制。为此,可将刚体标记为 isKinematic。虽然刚体标记为 isKinematic,但不会受到碰撞、力或物理系统任何其他部分的影响。这意味着,必须通过直接操作变换组件来控制对象。运动刚体将影响其他对象,但它们自身不会受到物理影响。例如,附加到运动对象的关节将约束附加到关节的所有其他刚体,并且运动刚体将通过碰撞影响其他刚体。
学习资料来源于https://docs.unity3d.com/cn/current/Manual/class-Rigidbody.html