Как ограничить поворот камеры Unity 3D?

В Unity 3D ограничить поворот камеры можно различными способами. Один из самых распространенных способов - использовать скрипт, который будет контролировать поворот камеры и применять ограничения в зависимости от заданных параметров.

Для начала, необходимо создать скрипт для контроля поворота камеры. Это можно сделать, создав новый скрипт в Unity и добавить его к объекту, на котором находится камера. В этом скрипте мы будем использовать методы ввода Unity, такие как Input.GetAxis, для получения значений по оси ввода игрока.

Пример скрипта, ограничивающего поворот камеры по оси Y:

using UnityEngine;

public class CameraRotation : MonoBehaviour
{
    public float rotationSpeed = 5f; // Скорость вращения камеры

    public float yMinLimit = -80f; // Минимальный угол поворота по оси Y
    public float yMaxLimit = 80f; // Максимальный угол поворота по оси Y

    private float rotationY = 0f; // Текущий угол поворота по оси Y

    void Update()
    {
        float mouseX = Input.GetAxis("Mouse X") * rotationSpeed; // Получаем значение по оси X
        float mouseY = Input.GetAxis("Mouse Y") * rotationSpeed; // Получаем значение по оси Y

        rotationY += mouseY; // Прибавляем значение по оси Y к текущему углу поворота

        // Применяем ограничения для угла поворота по оси Y
        rotationY = Mathf.Clamp(rotationY, yMinLimit, yMaxLimit);

        // Вращаем камеру вокруг осей X и Y
        transform.Rotate(- mouseY, mouseX, 0);
    }
}

В скрипте мы используем метод Update, чтобы обновлять поворот камеры каждый кадр игры. Значения по осям X и Y получаем с помощью Input.GetAxis, их ограничиваем с помощью Mathf.Clamp и применяем камеру трансформации с помощью метода Rotate.

Также, вы можете добавить другие ограничения, например, для угла поворота по оси X, или использовать другие методы ввода, например, использование клавиш на клавиатуре.

Когда вы присоедините этот скрипт к объекту с камерой, вы сможете видеть, как ограничения поворота работают в игре. При попытке повернуть камеру за пределы заданных углов, она будет ограничена и не сможет повернуться дальше.