版本:Unity 6 (6000.0)
语言英语
  • C#

Rigidbody2D.totalTorque

建议修改

成功!

感谢你帮助我们改善 Unity 文档的质量。虽然我们无法接受全部提交,但我们会阅读用户建议的每一处修改,并在适用的地方进行更新。

关闭

提交失败

由于某些原因,你的建议修改无法提交。请在几分钟后<a>重试</a>。感谢你花时间帮我们提高 Unity 文档的质量。

关闭

取消

public float totalTorque;

描述

自上次物理模拟步骤以来,明确应用于此 Rigidbody2D 的总扭矩。

使用 Rigidbody2D.AddTorqueRigidbody2D.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; } }