版本: Unity 6 (6000.0)
语言英语
  • C#

Rigidbody2D.AddForce

提出建议

成功!

感谢您帮助我们提高 Unity 文档的质量。尽管我们无法接受所有提交,但我们会阅读每个来自用户建议的更改,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,无法提交您的建议变更。请在几分钟内<a>重试</a>。感谢您花费时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public void AddForce(Vector2 force, ForceMode2D mode = ForceMode2D.Force);

参数

force X 和 Y 轴上的力分量。
mode 用于施加指定力的方法。

说明

向刚体施加力。

力由 X 和 Y 方向的两个独立分量指定(2D 物理中没有 Z 方向)。物体将根据定律力 = 质量 x 加速度加速 - 质量越大,加速到给定速度所需的力就越大。

如果您未指定 ForceMode2D,则将使用默认值。在这种情况下,默认值为 ForceMode2D.Force,它会随着时间推移施加力,并使用质量。

要使用以下示例脚本,请将您选择的脚本拖放到层次结构中的精灵上。确保该精灵具有 Rigidbody2D 组件。

其他资源:AddForceAtPositionAddTorquemasslinearVelocityAddForceForceMode2D

// 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 Example : MonoBehaviour { public Texture2D tex;

private Rigidbody2D rb2D; private Sprite mySprite; private SpriteRenderer sr; private float thrust = 1f;

void Awake() { sr = gameObject.AddComponent<SpriteRenderer>(); rb2D = gameObject.AddComponent<Rigidbody2D>(); }

void Start() { mySprite = Sprite.Create(tex, new Rect(0.0f, 0.0f, 128.0f, 128.0f), new Vector2(0.5f, 0.5f), 100.0f);

sr.color = new Color(0.9f, 0.9f, 0.5f, 1.0f); sr.sprite = mySprite; transform.position = new Vector3(0.0f, -2.0f, 0.0f); }

void FixedUpdate() { rb2D.AddForce(transform.up * thrust); // Alternatively, specify the force mode, which is ForceMode2D.Force by default rb2D.AddForce(transform.up * thrust, ForceMode2D.Impulse); } }