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

参数

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

描述

Rigidbody 添加力。

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

力只能应用于处于活动状态的刚体。如果 GameObject 处于非活动状态,则 AddForce 没有效果。

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

另请参阅:AddForceAtPositionAddRelativeForceAddTorque

该示例向 GameObject 的 Rigidbody 施加前进力。

using UnityEngine;

public class ExampleClass : MonoBehaviour { public float thrust; 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 添加力。

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

力只能应用于处于活动状态的刚体。如果 GameObject 处于非活动状态,则 AddForce 没有效果。

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

另请参阅:AddForceAtPositionAddRelativeForceAddTorque

该示例向 GameObject 的 Rigidbody 施加沿 Z 轴的 Impulse 力。

using UnityEngine;

public class ExampleClass : MonoBehaviour { public float thrust; public Rigidbody rb;

void Start() { rb = GetComponent<Rigidbody>(); }

void FixedUpdate() { rb.AddForce(0, 0, thrust, ForceMode.Impulse); } }