1、第一种状况,键盘左右键控制人物旋转,让人物能够面向四方,而后上下键控制移动。spa
public float speed = 3.0F; public float rotateSpeed = 3.0F; CharacterController controller; void Start () { controller = GetComponent<CharacterController>(); } void Update() { transform.Rotate(0, Input.GetAxis("Horizontal") * rotateSpeed, 0); Vector3 forward = transform.TransformDirection(Vector3.forward); //注意这个方法 float curSpeed = speed * Input.GetAxis("Vertical"); controller.SimpleMove(forward * curSpeed); }第二种状况,键盘四个键能够同时控制人物移动。
public float speed = 6.0F; public float jumpSpeed = 8.0F; public float gravity = 20.0F; private Vector3 moveDirection = Vector3.zero; CharacterController controller; void Start () { controller = GetComponent<CharacterController>(); } void Update() { if (controller.isGrounded) { moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")); moveDirection = transform.TransformDirection(moveDirection); moveDirection *= speed; if (Input.GetButton("Jump")) moveDirection.y = jumpSpeed; } moveDirection.y -= gravity * Time.deltaTime; controller.Move(moveDirection * Time.deltaTime); }