Advertisement
Guest User

Untitled

a guest
Jan 21st, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 KB | None | 0 0
  1. void LateUpdate()
  2. {
  3. if (GameSettings.menuOpened)
  4. return;
  5.  
  6. if (currentSensitivityX != GameSettings.mouseSensitivityX || currentSensitivityY != GameSettings.mouseSensitivityY)
  7. {
  8. currentSensitivityX = GameSettings.mouseSensitivityX;
  9. currentSensitivityY = GameSettings.mouseSensitivityY;
  10. }
  11.  
  12. sensitivityX = currentSensitivityX * (GameSettings.currentFOV / GameSettings.defaultFOV);
  13. sensitivityY = currentSensitivityY * (GameSettings.currentFOV / GameSettings.defaultFOV);
  14.  
  15. if (axes == RotationAxes.MouseX)
  16. {
  17. #if UNITY_EDITO
  18. rotationX += Input.GetAxis("Mouse X") * sensitivityX;
  19. #else
  20. rotationX += GameSettings.lookDirection.x * sensitivityX;
  21. #endif
  22.  
  23. rotationX = ClampAngle(rotationX, minimumX, maximumX);
  24. Quaternion xQuaternion = Quaternion.AngleAxis(rotationX, Vector3.up);
  25. transform.localRotation = originalRotation * xQuaternion;
  26. }
  27.  
  28. if (axes == RotationAxes.MouseY)
  29. {
  30. #if UNITY_EDITO
  31. rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
  32. #else
  33. rotationY += GameSettings.lookDirection.y * sensitivityY;
  34. #endif
  35.  
  36. rotationY = ClampAngle(rotationY, minimumY, maximumY);
  37. Quaternion yQuaternion = Quaternion.AngleAxis(-rotationY, Vector3.right);
  38. transform.localRotation = originalRotation * yQuaternion;
  39. }
  40.  
  41. if (axes == RotationAxes.MouseOrbit && reachedTarget && target)
  42. {
  43. #if UNITY_EDITO
  44. rotationX += Input.GetAxis("Mouse X") * sensitivityX;
  45. rotationY -= Input.GetAxis("Mouse Y") * sensitivityY;
  46. #else
  47. rotationX += GameSettings.lookDirection.x * sensitivityX;
  48. rotationY += GameSettings.lookDirection.y * sensitivityY;
  49. #endif
  50.  
  51. rotationX = ClampAngle(rotationX, minimumX, maximumX);
  52. rotationY = ClampAngle(rotationY, minimumY, maximumY);
  53.  
  54. Quaternion rotation = Quaternion.Euler(rotationY, rotationX, 0);
  55. Vector3 position = rotation * new Vector3(0.0f, 0.0f, -distance) + target.position;
  56.  
  57. transform.rotation = rotation;
  58. transform.position = position;
  59. }
  60. }
  61.  
  62. public static float ClampAngle(float angle, float min, float max)
  63. {
  64. if (angle < -360F)
  65. {
  66. angle += 360F;
  67. }
  68.  
  69. if (angle > 360F)
  70. {
  71. angle -= 360F;
  72. }
  73.  
  74. return Mathf.Clamp(angle, min, max);
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement