public Vector3 velocity ;

Description

该角色的当前相对速度(请参阅注释)。

这可使您跟踪该角色的实际行走速度,例如 当它卡在一面墙的位置时,此值将为零向量。

Note: The velocity returned is simply the difference in distance for the current timestep before and after a call to CharacterController.Move or CharacterController.SimpleMove. The velocity is relative because it won't track movements to the transform that happen outside of the CharacterController (e.g. character parented under another moving Transform, such as a moving vehicle).

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