force | 力在 X 轴和 Y 轴上的分量。 |
mode | 用于施加指定力的方法。 |
对刚体施加力。
力被指定为在 X 和 Y 方向(在 2D 物理中,没有 Z 方向)上的两个独立分量。对象在力的作用下的加速运动遵循力 = 质量 x 加速度 法则 - 即质量越大,加速到给定速度所需的力也越大。
如果未指定 ForceMode2D,则使用默认值。
此情况下的默认值为 ForceMode2D.Force,它会随时间推移增加力(考虑质量)。
若要使用以下示例脚本,请将所选脚本拖放到层级视图中的精灵上。确保精灵具有 Rigidbody2D 组件。
另请参阅:AddForceAtPosition、AddTorque、mass、velocity、AddForce、ForceMode2D。
// The sprite will fall under its weight. After a short time the // sprite will start its upwards travel due to the thrust force that is added // in the opposite direction
using UnityEngine; using System.Collections;
public class ExampleTwo : MonoBehaviour { private Rigidbody2D rb2D; private float thrust = 10.0f;
void Start() { rb2D = gameObject.AddComponent<Rigidbody2D>(); transform.position = new Vector3(0.0f, -2.0f, 0.0f); }
void FixedUpdate() { rb2D.AddForce(transform.up * thrust); } }
// For short bursts of force (such as an explosion) use ForceMode2D.Impulse // This adds an instant force impulse to the Rigidbody2D, using mass
using System.Collections; using UnityEngine;
public class ExampleOne : MonoBehaviour { private Rigidbody2D rb2D; private float thrust = 10.0f;
private void Start() { rb2D = gameObject.AddComponent<Rigidbody2D>(); transform.position = new Vector3(0.0f, -2.0f, 0.0f); }
private void Update() { if (Input.GetKeyDown(KeyCode.Space)) { rb2D.AddForce(transform.up * thrust, ForceMode2D.Impulse); } } }