Как ограничить поворот камеры 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); }

14 Мар 2023 в 19:52
170 +1
0
Ответы
1

Проблема заключается в том, что вы применяете ограничение к значению 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.

16 Апр 2024 в 16:32
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир