Unity 3D: Настройка камеры в игре (Часть 4)

Настроим камеру для оптимального отображения игровой сцены. В начальном положении камера расположена неудачно: мячик виден, но ракурс неудобен.

Настройка положения камеры

Изменим положение камеры. Установим координаты: Y = 10 (поднимем высоко), Z = -10 (отдалим от платформы), X = -6. Это обеспечит хороший обзор.

Однако, угол обзора всё ещё неудобен. Попробуем повернуть камеру вниз, изменив значения: Y = 16, Z = 21. Теперь сцена видна гораздо лучше. Можно использовать эти настройки или подобрать собственные.

Привязка камеры к игроку

Самый простой способ привязать камеру к игроку – сделать камеру дочерним объектом игрока. При движении игрока камера будет двигаться вместе с ним. Это заметно при изменении положения и вращения игрока (rotation).

Однако, при вращении игрока вращается и камера, что нежелательно. Поэтому этот способ не подходит. Для корректной работы нужен скрипт.

Скрипт управления камерой

Создадим скрипт Camera и прикрепим его к главной камере. Скрипт будет изменять положение камеры, вычисляя разницу между позицией игрока и желаемым положением камеры. Это позволит сохранить постоянное расстояние между камерой и игроком.

Для этого нужна переменная типа Vector3 для хранения этой разницы. Будем брать позицию камеры и вычитать из неё позицию игрока. Для доступа к позиции игрока добавим публичную переменную public Transform player; в скрипт. Это позволит назначить игровой объект в инспекторе Unity.

public Transform player;
private Vector3 difference;

В функции LateUpdate будем обновлять позицию камеры:

void LateUpdate()
{
    difference = transform.position - player.position;
    transform.position = player.position + difference;
}

В Unity перетащим игровой объект на поле Player в инспекторе.

Результат

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

Мы научились настраивать положение камеры и создавать скрипт для её динамического перемещения, следующего за игроком. Теперь камера в игре будет работать корректно, обеспечивая удобный обзор игрового процесса.

Что будем искать? Например,программа