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