Как ограничить поворот камеры Unity 3D? Пробовал ограничить значение mouseY с помощью Mathf.Clamp(), но все равно ничего не работает,void LateUpdate() { mouseX = Input.GetAxis("Mouse X") * sentivity * Time.deltaTime; mouseY = Input.GetAxis("Mouse Y") * sentivity * Time.deltaTime; Player.Rotate(mouseX * new Vector3(0, 1, 0)); transform.Rotate(-mouseY * new Vector3(1, 0, 0)); mouseY = Mathf.Clamp(mouseY, -90, 90); }
Проблема заключается в том, что вы применяете ограничение к значению mouseY после того, как уже произошло вращение камеры. Вам нужно применить ограничение до вращения камеры.
Проблема заключается в том, что вы применяете ограничение к значению mouseY после того, как уже произошло вращение камеры. Вам нужно применить ограничение до вращения камеры.
Вот как можно исправить ваш код:
void LateUpdate() {mouseX = Input.GetAxis("Mouse X") * sentivity * Time.deltaTime;
mouseY = Mathf.Clamp(Input.GetAxis("Mouse Y") * sentivity * Time.deltaTime, -90, 90);
Player.Rotate(mouseX * new Vector3(0, 1, 0));
transform.Rotate(-mouseY * new Vector3(1, 0, 0));
}
Теперь ограничение применяется к значению mouseY до того, как происходит вращение камеры, и оно не превысит допустимые значения -90 и 90.