普通浏览复制代码
-
private var walkSpeed : float = 1.0; -
private var gravity = 100.0; -
private var moveDirection : Vector3 = Vector3.zero; -
private var charController : CharacterController; -

-

-
function Start() -
{ -
charController = GetComponent(CharacterController); -
animation.wrapMode = WrapMode.Loop; -
} -

-

-
function Update () -
{ -
if(charController.isGrounded == true) -
{ -
if(Input.GetAxis("Vertical") > .1) -
{ -
if(Input.GetButton("Run")) -
{ -
animation.CrossFade("run"); -
walkSpeed = 4; -
} -
else -
{ -
animation["walk"].speed = 1; -
animation.CrossFade("walk"); -
walkSpeed = 1; -
} -
} -
else if(Input.GetAxis("Vertical") < -.1) -
{ -
animation["walk"].speed = -1; -
animation.CrossFade("walk"); -
walkSpeed = 1; -
} -
else -
{ -
animation.CrossFade("idle"); -
} -
-

-
// Create an animation cycle for when the character is turning on the spot -
if(Input.GetAxis("Horizontal") && !Input.GetAxis("Vertical")) -
{ -
animation.CrossFade("walk"); -
} -
-
-
transform.eulerAngles.y += Input.GetAxis("Horizontal"); -
// Calculate the movement direction (forward motion) -
moveDirection = Vector3(0,0, Input.GetAxis("Vertical")); -
moveDirection = transform.TransformDirection(moveDirection); -
-
} -
-
moveDirection.y -= gravity * Time.deltaTime; -
charController.Move(moveDirection * (Time.deltaTime * walkSpeed)); -
}