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

Rigidbody2D.AddTorque

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每一条建议,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请在几分钟后重新尝试。感谢您花时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public void AddTorque(float torque, ForceMode2D mode = ForceMode2D.Force);

参数

扭矩 要施加的扭矩。
模式 要使用的力模式。

描述

施加一个扭矩在刚体的质心处。

Rigidbody2D 施加扭矩只会改变 angularVelocity。此更改通过旋转 inertia 来缩放(除以)。因此,更大的 inertia 将导致 angularVelocity 的较小变化,而较小的 inertia 将导致 angularVelocity 的较大变化。

当将扭矩施加为力或冲量时,可以使用任何值来获得 angularVelocity 的所需变化。但是,如果您需要特定角度的变化,则必须先通过乘以 Mathf.Deg2Rad,再乘以 inertia,将torque 值转换为弧度。

以下示例将此作为冲量进行演示

其他资源:AddForceAddForceAtPosition

using UnityEngine;

public class TorqueRotationExample : MonoBehaviour { // Add an impulse which produces a change in angular velocity (specified in degrees). public void AddTorqueImpulse(float angularChangeInDegrees) { var body = GetComponent<Rigidbody2D>(); var impulse = (angularChangeInDegrees * Mathf.Deg2Rad) * body.inertia;

body.AddTorque(impulse, ForceMode2D.Impulse); } }