public float speed = 5f; // 移动速度
private CharacterController characterController;
void Start()
{
characterController = GetComponent<CharacterController>();
}
void Update()
{
Move();
MouseLook();
}
void Move()
{
float x = Input.GetAxis("Horizontal");
float z = Input.GetAxis("Vertical");
Vector3 moveDirection = transform.right * x + transform.forward * z;
moveDirection *= speed * Time.deltaTime;
characterController.Move(moveDirection);
}
void MouseLook()
{
float mx = Input.GetAxis("Mouse X");
float my = -Input.GetAxis("Mouse Y");
Quaternion qx = Quaternion.Euler(0, mx, 0);
Quaternion qy = Quaternion.Euler(my, 0, 0);
transform.rotation = qx * transform.rotation;
transform.rotation = transform.rotation * qy;
float angle = transform.eulerAngles.x;
if (angle > 180) { angle -= 360; }
if (angle < -180) { angle += 360; }
if (angle > 80)
{
Debug.Log("A" + transform.eulerAngles.x);
transform.eulerAngles = new Vector3(80, transform.eulerAngles.y, 0);
}
if (angle < -80)
{
Debug.Log("A" + transform.eulerAngles.x);
transform.eulerAngles = new Vector3(-80, transform.eulerAngles.y, 0);
}
}
}