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

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