Камера 2D + движение в рамках границ

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


Подготовка персонажа:

Камера 2D + движение в рамках границ

По умолчанию, "лицо" персонажа, должно смотреть вправо, при условии отсутствия вращения объекта.

Подготовка карты:
Чтобы установить границы, внутри которых может двигаться камера. Для этого просто добавляем на сцену обычный спрайт-квадрат, назовем его Bounds Map (не забываем указать этот объект в поле скрипта), ставим по центру карты и увеличиваем до нужного размера. После настройки, делаем его невидимым, чтобы не мешал.



Далее на камеру вешаем скрипт Camera2DFollowTDS, который можно скачать ниже и всё. Убедитесь что у персонажа установлен стандартный тег Player. Внимание. Если установлены границы перемещения, то они будут действовать только для камеры, на самого персонажа это никак не повлияет.

Скачать скрипт:

Внимание! Посетители, находящиеся в группе Гости, не могут скачивать файлы.
Тестировалось на: Unity 5.4.1

Комментариев 12

Офлайн
cry_san 19 января 2017
Есть идея получше. Плавный зум и скрол по границам с помощью мыши (как в стратегиях). Добавьте на камеру этот скрипт:
Офлайн
кинул скрипт на объект.все работает, но когда персонаж быстро движется то его движения будто прерываются.такое ощущение что камера пытается его догнать,и получается что персонаж двигается как то рывками.
Офлайн
Артур Ступников,
решил, просто значение smooth увеличивать надо.
Офлайн
Light 6 апреля 2017
Артур Ступников, добавил второй вариант скрипта. Еще на Rigidbody нужно включить Interpolate.
Офлайн
Light,
А нельзя ли их сделать в большом количестве эти Bounds map?Чтобы можно было их несколько сделать или больше
Офлайн
Light 8 июня 2017
Давуд Ахмедов, https://null-code.ru/solution/179-delaem-umnuyu-2d-kameru.html
Офлайн
Light,
камера за курсором не следует(
Скрипт не изменял ОШИБОК НЕТУ!
Офлайн
Light 14 июля 2017
Давуд Ахмедов, если ошибок нет в скрипте, значит ошибся ты, а где именно, я не могу знать. Проверяй, смотри демо.
Офлайн
Light,
как может быть ошибка если я кроме того что скрипт на камеру поставил,добавил bound,и увеличил smooth может быть ошибка?
Офлайн
Light 15 июля 2017
Давуд Ахмедов, я проверял демо, всё работает без проблем.
Офлайн
PuHaT 12 июня 2019
Подскажите пожалуйста, как можно поставить камеру изначально внутри границы, а не центровать по Player? персонаж изначально стоит в крайнем левом положении, ну и камера соответственно выходит за рамки(
Офлайн
Light 13 июня 2019
PuHaT, скрипт обновлен, скачай новую версию, должно быть нормально теперь.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
  • Яндекс.Метрика