Unity 6.3
0 онлайн 75 гостей 3 в системе
Вход

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); } }