Rigidbody2D.linearVelocity
Declaration
public Vector2 linearVelocity;Описание
Линейная скорость Rigidbody2D представляет собой скорость изменения во времени позиции Rigidbody2D в мировых единицах.
Линейная скорость указывается как Vector2 с компонентами в направлениях X и Y (в данном случае нет направления Z) 2D Значение обычно не устанавливается непосредственно, а скорее с помощью силы.
Линейная скорость зависит от заданных пользователем сил, импульсов от столкновений, гравитации и Rigidbody2D.linearDamping.
Примечание: A скорость в Unity представляется в мировых единицах в секунду. Мировые единицы являются произвольными и часто рассматриваются как метры, но они также могут представлять миллиметры или световые годы.
Дополнительные ресурсы: Rigidbody2D.angularVelocity, Rigidbody2D.AddForce и Rigidbody2D.linearDamping.
using UnityEngine;
public class ExampleClass : MonoBehaviour { private Rigidbody2D rb;
private float time = 0.0f; private bool isMoving = false; private bool isJumpPressed = false; void Start() { rb = GetComponent<Rigidbody2D>(); }
void Update() { isJumpPressed = Input.GetButtonDown("Jump"); }
void FixedUpdate() { // Was jump pressed and we're not moving? if (isJumpPressed && !isMoving) { // The rigidbody moves up the y axis at a rate of 10 units per second rb.linearVelocity = new Vector2(0f, 10f);
isMoving = true;
Debug.Log("Moving!"); }
if (isMoving) { // When the rigidbody has moved for 10 seconds, report its position time = time + Time.fixedDeltaTime; if (time > 10f) { // Remove the linear velocity. rb.linearVelocity = Vector2.zero;
time = 0.0f; isMoving = false; Debug.Log(rb.position.y + " : " + time); } } } }