该角色的当前相对速度(请参阅注释)。
这可使您跟踪该角色的实际行走速度,例如
当它卡在一面墙的位置时,此值将为零向量。
注意:在调用 CharacterController.Move 或 CharacterController.SimpleMove 之前和之后,
返回的速度对于当前时间间隔而言在距离上是不同的。
该速度为相对速度,因为它不会跟踪朝向
在 CharacterController 之外发生的变换组件的移动(例如,作为另一个移动 Transform
(例如正在移动的车辆)的子对象的角色)。
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;
}
}