AddTorque(float, ForceMode2D)
Apply a torque at the rigidbody's centre of mass.
Read time 1 minuteLast updated 7 days ago
Definition
- Type: Method
- Namespace: UnityEngine
- Assembly: UnityEngine.Physics2DModule
public void AddTorque(float torque, ForceMode2D mode)
Parameters
Remarks
Applying torque to the Rigidbody2D changes the Rigidbody2D.angularVelocity only. This change is scaled (divided) by the rotational Rigidbody2D.inertia. Therefore, a larger Rigidbody2D.inertia results in smaller changes to Rigidbody2D.angularVelocity, and a smaller Rigidbody2D.inertia results in larger changes to Rigidbody2D.angularVelocity.
When applying torque either as a force or an impulse, you can use any value to get the required change in Rigidbody2D.angularVelocity. However, if you require a specific change in degrees, then you must first convert the value into radians by multiplying with Mathf.Deg2Rad then multiplying by the Rigidbody2D.inertia.
torqueThe following example demonstrates this as an impulse:
Additional Resources: Rigidbody2D.AddForce, Rigidbody2D.AddForceAtPosition.
Examples
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); }}