Описание
Текущая относительная скорость Персонажа (см. примечания).
Это позволяет вам отслеживать, насколько быстро персонаж на самом деле ходит, например, когда он застрял у стены, это значение будет нулевым вектором.
Примечание. Возвращаемая скорость — это просто разница в расстоянии для текущего временного шага до и после вызова CharacterController.Move или CharacterController.SimpleMove. Скорость является относительной, потому что она не будет отслеживать движения преобразования, которые происходят за пределами CharacterController (например, персонаж, являющийся родительским элементом другого движущегося преобразования, такого как движущееся транспортное средство).
using UnityEngine;
public class Example : MonoBehaviour
{
CharacterController controller;
void Start()
{
controller = GetComponent<CharacterController>();
}
void Update()
{
Vector3 horizontalVelocity = controller.velocity;
horizontalVelocity = new Vector3(controller.velocity.x, 0, controller.velocity.z);
// The speed on the x-z plane ignoring any speed
float horizontalSpeed = horizontalVelocity.magnitude;
// The speed from gravity or jumping
float verticalSpeed = controller.velocity.y;
// The overall speed
float overallSpeed = controller.velocity.magnitude;
}
}