自上次物理模拟步骤以来,明确应用于此 Rigidbody2D 的总扭矩。
使用 Rigidbody2D.AddTorque 或 Rigidbody2D.AddForceAtPosition(当力远离 worldCenterOfMass 应用时)向 Rigidbody2D 添加扭矩时,将对扭矩总数进行求和。当物理模拟步骤运行时,会使用此总扭矩。
在下一个模拟步骤中,总扭矩的时间积分将进入 Rigidbody2D.angularVelocity,然后自动归零。
注意:只有具有 动态 Body 类型 的 Rigidbody2D 才会对力或扭矩产生响应。对具有 运动 Body 类型 或 静态 Body 类型 的物体设置此属性将不起作用。
using UnityEngine; using UnityEngine.Assertions;
public class Example : MonoBehaviour { void Start() { // Fetch the rigidbody. var body = GetComponent<Rigidbody2D>();
// Make the assumption the body has no previous torque applied. Assert.AreApproximatelyEqual(0.0f, body.totalTorque, Mathf.Epsilon);
// Initialize a torque. var torque = 5f;
// Add the torque. body.AddTorque(torque);
// The total torque should be what we just added. Assert.AreApproximatelyEqual(torque, body.totalTorque, Mathf.Epsilon);
// Add the same torque again. body.AddTorque(torque);
// The total torque should still be what we've added. Assert.AreEqual(torque * 2f, body.totalTorque);
// We can reset any torque that has been applied since the last simulation step. body.totalTorque = 0f; } }