一、键盘控制类

public class CharacterTest1 : MonoBehaviour { // Start is called before the first frame update CharacterController controller; public float speed = 1.0f; private float playerSpeed = 0.0f; public float rotationSpeed = 180.0f; void Start() { controller = GetComponent<CharacterController>(); } void Update() { Move2(); } void Move() { float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical"); if (h!=0 || v!=0) { print("h:" + h + " && v:" + v); } Vector3 dir = new Vector3(speed*h, 0, speed*v); controller.SimpleMove(dir); } void Move2() { //角色的朝向 Vector3 playerForward = this.transform.TransformDirection(Vector3.forward); //向前移动 if (Input.GetKey(KeyCode.W)) { playerSpeed = 5.0f; } else if (Input.GetKey(KeyCode.S)) { playerSpeed = -5.0f; } else if (Input.GetKey(KeyCode.A)) { //this.transform.Rotate(Vector3.up * -10); transform.Rotate(Vector3.down * rotationSpeed * Time.deltaTime, Space.Self); } else if (Input.GetKey(KeyCode.D)) { //this.transform.Rotate(Vector3.up * 10); transform.Rotate(Vector3.up * rotationSpeed * Time.deltaTime, Space.Self); } else { playerSpeed = 0.0f; } controller.SimpleMove(playerForward * playerSpeed); } }