Rigidbody2D.AddTorque
Declaration
public void AddTorque(float torque, ForceMode2D mode = ForceMode2D.Force);Параметры
| Параметр | Описание |
|---|---|
| крутящий момент | Крутящий момент для применения. |
| режим | Используемый режим принуждения. |
Описание
В центре масс жесткого кузова прилагается крутящий момент.
Применение крутящего момента к Rigidbody2D изменяет только angularVelocity. Это изменение масштабируется (делилось) на вращение inertia. Поэтому, больший inertia приводит к меньшим изменениям в angularVelocity, а меньший inertia приводит к большим изменениям в angularVelocity.
При применении крутящего момента либо как силы, либо как импульса, вы можете использовать любое значение для получения требуемого изменения в angularVelocity. Однако, если вам требуется конкретное изменение в градусах, то вы должны сначала преобразовать значение torque в радианы, умножив на Mathf.Deg2Rad, а затем умножить на inertia.
Следующий пример демонстрирует это как импульс:
Дополнительные ресурсы: 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); } }