Unity3D – Character Controller – Velocity – JavaScript

This allows you to track how fast the character is actually walking for example when he is stuck at a wall this value will be the zero vector, or if vertical speed is <0 the character is falling down. The current relative velocity of the Character. 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). [js] function Update () { // Get relative velocity of Character Controller component GetVelocity(); }//END UPDATE function GetVelocity() { // Get the component 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; Debug.Log(horizontalSpeed + " " + verticalSpeed + " " + overallSpeed ); }// END GetVelocity() [/js]