Как сделать пределы для камеры?

В Unity можно легко создать пределы для камеры, чтобы она не выходила за определенные границы. Есть несколько способов добиться этого, рассмотрим два наиболее распространенных:

1. Использование скрипта:

Создайте новый C# скрипт в Unity и прикрепите его к главной камере. В этом скрипте вы можете использовать методы Mathf.Clamp для ограничения позиции камеры в определенном диапазоне.

Пример кода:

using UnityEngine;

public class CameraLimits : MonoBehaviour
{
    public float minX;
    public float maxX;
    public float minY;
    public float maxY;

    void Update()
    {
        // Получаем текущие координаты камеры
        float clampedX = Mathf.Clamp(transform.position.x, minX, maxX);
        float clampedY = Mathf.Clamp(transform.position.y, minY, maxY);

        // Устанавливаем новые координаты камеры, ограниченные пределами
        transform.position = new Vector3(clampedX, clampedY, transform.position.z);
    }
}

2. Использование компонента "Cinemachine":

Unity также предоставляет компонент "Cinemachine", который имеет встроенную функциональность для ограничения движения камеры. С помощью этого компонента можно создавать сложные системы камерных пределов с плавными переходами.

Для использования компонента "Cinemachine" следуйте следующим шагам:

- Установите пакет "Cinemachine" из меню "Window -> Package Manager".
- Создайте пустой объект и назовите его "VirtualCamera".
- Добавьте компонент "Cinemachine Virtual Camera" к объекту "VirtualCamera". В инспекторе компонента "Virtual Camera" вы найдете различные настройки камеры, включая пределы её движения.
- Создайте пустой объект и назовите его "CameraLimits".
- Добавьте компонент "Cinemachine Confiner" к объекту "CameraLimits". Теперь вы можете настроить форму пределов камеры в режиме редактирования, добавив в компонент "Cinemachine Confiner" нужные коллайдеры или мешы.

Это лишь два примера способов создания пределов для камеры в Unity. В зависимости от ваших конкретных требований можно использовать и другие методы, такие как создание собственных скриптов по ограничению камеры или использование других пакетов активных в Unity Asset Store.