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