Version: 2019.1 (switch to 2018.3 or 2017.4)
LanguageEnglish
  • C#

Rigidbody2D.AddForce

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

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

Parameters

forceComponents of the force in the X and Y axes.
modeThe method used to apply the specified force.

Description

Apply a force to the rigidbody.

The force is specified as two separate components in the X and Y directions (there is no Z direction in 2D physics). The object will be accelerated by the force according to the law force = mass x acceleration - the larger the mass, the greater the force required to accelerate to a given speed.

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.  This is because
// of the force on the sprite.

using UnityEngine; using System.Collections;

public class Example : MonoBehaviour { public Texture2D tex;

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

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 Update() { rb2D.AddForce(transform.up * thrust); } }

Did you find this page useful? Please give it a rating: