CharacterController.velocity
Declaration
public Vector3 velocity;Описание
Текущая относительная скорость персонажа (см. примечания).
Это позволяет отслеживать, насколько быстро персонаж действительно ходит, например, когда он застрял на стене, это значение будет нулевым вектором.
Примечание: Возвращаемая скорость — это просто разница в расстоянии для текущего шагу времени до и после вызова CharacterController.Move или CharacterController.SimpleMove. Скорость относительна, потому что она не отслеживает движения к преобразованию, которые происходят вне CharacterController (e.g. персонаж в скобках под другим движущимся Transform, таким как движущаяся машина).
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; } }