Упрощенный аналог Unity Character Controller, который просто управляет камерой (без персонажа).
Управление клавишами обеспечивается принимая ввод пользователя через UnityEngine.InputSystem. Используется:
-
WASD - направляет камеру в соответствующую сторону (обрабатывает FastController)
-
Right Button Mouse - при нажатии поворачивает камеру (обрабатывает TopCamera)
-
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.