移动
初始化临时变量
float _mouseX = Input.GetAxis("Mouse X");
float _mouseY = Input.GetAxis("Mouse Y");
Vector3 moveDir = Vector3.zero;
if(...){
moveDir += _mouseY * -camera.transform.forward;
moveDir.y = 0;
}else{
moveDir += _mouseY * -camera.transform.up;
moveDir.z = 0;
}
if(...){
moveDir += _mouseX * -camera.transform.right;
}else{
moveDir.x = 0;
}
camera.transform.position += moveDir * moveSpeed;
旋转
float _mouseX = Input.GetAxis("Mouse X");
float _mouseY = Input.GetAxis("Mouse Y");
if(...){
camera.transform.Rotate(Vector3.up * _mouseX * rotateSpeedSelf, Space.World);
camera.transform.Rotate(Vector3.right * (-_mouseY * rotateSpeedSelf), Space.Self);
}else{
camera.transform.RotateAround(this.cameraCenterPoint, Vector3.up, _mouseX * rotateSpeedWithCenter);
camera.transform.RotateAround(this.cameraCenterPoint, camera.transform.right, _mouseY * rotateSpeedWithCenter);
}