public void AddForce (Vector3 force, ForceMode mode= ForceMode.Force);

参数

force力矢量(世界坐标)。
mode要施加的力的类型。

描述

Rigidbody 添加力。

沿 force 矢量的方向连续施加力。可以指定 ForceMode /mode/,以将力的类型更改为 Acceleration、Impulse 或 Velocity Change。

施加的力在 FixedUpdate 中计算,或通过显式调用 Physics.Simulate 方法来计算。

力只能施加于处于活动状态的刚体。如果 GameObject 处于非活动状态,则 AddForce 没有效果。此外,刚体不能是运动刚体。

默认情况下,一旦施加力(Vector3.zero 力除外),刚体的状态就会被设置为唤醒。

另请参阅:AddForceAtPositionAddRelativeForceAddTorque

该示例向 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); } }

public void AddForce (float x, float y, float z, ForceMode mode= ForceMode.Force);

参数

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); } }