版本: Unity 6 (6000.0)
语言English
  • C#

CharacterController.velocity

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每个建议更改,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册
public Vector3 velocity;

描述

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

这使您可以跟踪角色实际行走的速度,例如当角色卡在墙上时,此值将为零向量。

注意:返回的速度仅仅是在调用 CharacterController.MoveCharacterController.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; } }