キャラクターの相対的速度を返します。(注意点があります)
これにより、キャラクターが実際にどれだけ早く歩いているかを追跡することが可能です。例えば
キャラクターが壁動きがとれないときに、この値は 0 vector になります。
注意: velocity は単に CharacterController.Move や CharacterController.SimpleMove の
呼び出し前後のタイムステップの差異を返します。
velocity は CharacterController 外で起こった Transform の動きを追跡しないので相対的な値になります。
(例えばキャラクターの親が他の 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; } }