Version: 2020.3
言語: 日本語
public void AddForce (Vector2 force, ForceMode2D mode= ForceMode2D.Force);

パラメーター

force 力の X および Y 軸方向の成分
mode 指定した力の適用方式

説明

Rigidbody に力を適用します

力は X および Y 軸方向の別々の成分として指定され( 2D 物理挙動では Z 軸方向がないことに注意)、オブジェクトは力 = 重さ x 加速度の法則にしたがって、加速が加えられ、重さが大きいほど特定速度まで加速させるのに、より多くの力が必要となります。

If you don’t specify a ForceMode2D the default will be used. The default in this case is ForceMode2D.Force which adds force over time, using mass.

To use the example scripts below, drag and drop your chosen script onto a Sprite in the Hierarchy. Make sure that the Sprite has a Rigidbody2D component.

See Also: 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 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); } }