普通浏览复制代码
- 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));
- }