Skip to content

Упрощенный аналог Unity Character Controller, который просто управляет камерой (без персонажа).

Управление клавишами обеспечивается принимая ввод пользователя через UnityEngine.InputSystem. Используется:

  1. WASD - направляет камеру в соответствующую сторону (обрабатывает FastController)

  2. Right Button Mouse - при нажатии поворачивает камеру (обрабатывает TopCamera)

  3. Scroll Mouse - приближает/отдаляяет камеру (обрабатывает FastController)

Свойства

bool AllowMove

Позволяет/запрещает камере двигаться.

Vector3 Speed

Скорость камеры (x), скорость поворота (y)

bool UseLimit

При =true не позволяет камере выходить за пространственные ограничения. Нужно выбрать способ ограничения (LimitType) и размеры пространства (TopWorld + SizeWorld или WorldLimit).

    public enum LimitType
    {
        Square, // ограничение квадратной областью
        Сircle // ограничение внутри круга
    }
    public class LimitCircle
    {
        public Vector2 Center; // центр круга
        public float Radius; // радиус
    }

Vector2 TopWorld + Vector2 SizeWorld

Верхняя правая точка террайна и размер террайна (ширина, длина).

Terrain WorldTerrain

Ссылка на террайн (задается в редакторе Unity), над пространством которого должна двигаться камера. Используется для получения высоты поверхности.

Zoom

float ZoomY - контрольное положение камеры по высоте Vector2 ZoomLimit - разрешенное уменьшение/увелечение высоты камеры от контрольного положения (ZoomY) float ZoomRate - скорость приближения/отдаления

Light light

При задании ссылки на свет (в редакторе Unity) управляет интенсивностью света, в зависимости от высоты камеры. LightIntensity используется как минимум-максимум возможной интенсивности.

Методы

Компонент не предоставляет методов управления камерой, управление камерой осуществляется компонентом самостоятельно каждый кадр в методе Update.