Описание
Вектор скорости твердого тела. Он представляет собой скорость изменения положения твердого тела.
В большинстве случаев вам не следует изменять скорость напрямую, так как это может привести к нереалистичному поведению - вместо этого используйте AddForce. Не устанавливайте скорость объекта на каждом шаге физики, это приведет к нереалистичной симуляции физики. Обычно вы меняете скорость во время прыжка в шутере от первого лица, потому что вам нужно немедленное изменение скорости.
Примечание. скорость — это свойство мирового пространства.
using UnityEngine;
using System.Collections;
// Скорость по оси Y составляет 10 единиц в секунду. Если GameObject начинается с (0,0,0), то
// оно достигнет (0,100,0) единиц через 10 секунд.
public class ExampleClass : MonoBehaviour
{
public Rigidbody rb;
private float time = 0.0f;
private bool isMoving = false;
private bool isJumpPressed = false;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
isJumpPressed = Input.GetButtonDown("Jump");
}
void FixedUpdate()
{
if (isJumpPressed)
{
// the cube is going to move upwards in 10 units per second
rb.velocity = new Vector3(0, 10, 0);
isMoving = true;
Debug.Log("jump");
}
if (isMoving)
{
// when the cube has moved for 10 seconds, report its position
time = time + Time.fixedDeltaTime;
if (time > 10.0f)
{
Debug.Log(gameObject.transform.position.y + " : " + time);
time = 0.0f;
}
}
}
}
Примечание. Скорость в Unity измеряется в единицах в секунду. Единицами часто считаются метры, но могут быть миллиметры или световые годы. Единая скорость также имеет скорость по осям X, Y и Z, определяющую направление.