force | @param force Componentes de la fuerza en los ejes X y Y. |
mode | @param mode El método usado para aplicar la fuerza especificada. |
Aplica una fuerza al rigidbody.
La fuerza está especificada como dos componentes separados en las direcciones X y Y (no hay dirección Z en la física 2D). El objeto será acelerado por la fuerza de acuerdo a la ley fuerza = masa x aceleración -entre más grande sea la masa, más grande será la fuerza requerida para acelerarla a una velocidad dada.
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); } }