force | 力矢量(世界坐标)。 |
mode | 要施加的力的类型。 |
向 Rigidbody 添加力。
沿 force
矢量的方向连续施加力。可以指定 ForceMode /mode/,以将力的类型更改为 Acceleration、Impulse 或 Velocity Change。
施加的力在 FixedUpdate 中计算,或通过显式调用 Physics.Simulate 方法来计算。
力只能施加于处于活动状态的刚体。如果 GameObject 处于非活动状态,则 AddForce 没有效果。此外,刚体不能是运动刚体。
默认情况下,一旦施加力(Vector3.zero 力除外),刚体的状态就会被设置为唤醒。
另请参阅:AddForceAtPosition、AddRelativeForce、AddTorque。
该示例向 GameObject 的 Rigidbody 施加前进力。
using UnityEngine;
public class ExampleClass : MonoBehaviour { public float thrust = 1.0f; public Rigidbody rb;
void Start() { rb = GetComponent<Rigidbody>(); }
void FixedUpdate() { rb.AddForce(transform.forward * thrust); } }
x | 沿世界 X 轴的力大小。 |
y | 沿世界 Y 轴的力大小。 |
z | 沿世界 Z 轴的力大小。 |
mode | 要施加的力的类型。 |
向 Rigidbody 添加力。
该示例向 GameObject 的 Rigidbody 施加沿 Z 轴的 Impulse 力。
using UnityEngine;
public class ExampleClass : MonoBehaviour { public float thrust = 1.0f; public Rigidbody rb;
void Start() { rb = GetComponent<Rigidbody>(); rb.AddForce(0, 0, thrust, ForceMode.Impulse); } }