Unity C#
Rigidbody.velocity в Unity C# — скорость физического объекта
Свойство velocity компонента Rigidbody управляет скоростью объекта. Это вектор, который задаёт направление и величину скорости движения в мировых координатах.
Через velocity можно напрямую менять физическое движение объекта, не прибегая к силам. Удобно для контролируемого движения — полётов, плавания или простого платформера.
Важно: запись в velocity напрямую перезаписывает расчёты физического движка. Поэтому она не учитывает столкновения, сопротивление воздуха и другие силы.
Пример кода
Скорость игрока задаётся напрямую по вводу с осей:
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
private Rigidbody rb;
public float speed = 5.0f;
void Start()
{
// Получаем компонент Rigidbody
rb = GetComponent<Rigidbody>();
}
void Update()
{
// Получаем ввод игрока
float horizontal = Input.GetAxis("Horizontal");
float vertical = Input.GetAxis("Vertical");
// Рассчитываем новую скорость
Vector3 movement = new Vector3(horizontal, 0, vertical) * speed;
// Применяем скорость к Rigidbody
rb.velocity = movement;
}
}