Rigidbody2D.AddForce
Declaration
public void AddForce(Vector2 force, ForceMode2D mode = ForceMode2D.Force);Параметры
| Параметр | Описание |
|---|---|
| сила | Компоненты силы по осям X и Y. |
| режим | Метод, используемый для применения указанного усилия. |
Описание
Приложить силу к жесткому телу.
Сила определяется как два отдельных компонента в направлениях X и Y (в данном случае направление Z отсутствует). 2D Объект будет ускоряться силой в соответствии с законом гравитации, а сила будет ускоряться в соответствии с сила = масса х ускорение — чем больше масса, тем больше сила, необходимая для ускорения до определенной скорости.
Если вы не указываете ForceMode2D по умолчанию. По умолчанию в этом случае является ForceMode2D.Force который добавляет силу с течением времени, используя массу.
Чтобы использовать примеры скриптов ниже, перетащите выбранный вами скрипт на Sprite в Hierarchy. Убедитесь, что Sprite имеет Rigidbody2D компонент.
Дополнительные ресурсы: AddForceAtPosition, AddTorque, mass, linearVelocity, 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); } }