扭矩 | 要施加的扭矩。 |
模式 | 要使用的力模式。 |
施加一个扭矩在刚体的质心处。
对 Rigidbody2D 施加扭矩只会改变 angularVelocity。此更改通过旋转 inertia 来缩放(除以)。因此,更大的 inertia 将导致 angularVelocity 的较小变化,而较小的 inertia 将导致 angularVelocity 的较大变化。
当将扭矩施加为力或冲量时,可以使用任何值来获得 angularVelocity 的所需变化。但是,如果您需要特定角度的变化,则必须先通过乘以 Mathf.Deg2Rad,再乘以 inertia,将torque
值转换为弧度。
以下示例将此作为冲量进行演示
其他资源:AddForce,AddForceAtPosition。
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); } }