Найти тему
NoT ZaTroTing

Создаём платформер в Unity2D #5

Здравствуйте! В этой статье мы научим Камеру следить за Персонажем и научимся переходить с одной сцены на другую.

Добавляем скрипт к Камере и пишем следующий код:

Если интересно, что такое ref.

  • В первой строчке мы объявляем переменную target типа Transform. Ей мы будем передавать Transform (положение, Rotate (угол поворота) и масштабирование) нашего Персонажа в самом редакторе Unity.
  • Во второй мы объявляем насколько гладко будет движение Камеры.
  • В третьей мы объявляем вектор Камеры, но т.к. она сама по себе не движется, то вектор нулевой.
  • В четвертой мы объявляем точку, к которой будет стремиться Камера. В нашем случае это те же X и Y, но только "выше" (или "ниже", если смотреть на координаты).
  • В пятой мы меняем положение камеры с помощью метода SmoothDamp

Теперь не забудьте сохранить скрипт и в Unity в Target добавить нашего Персонажа. Давайте заценим результат:

Появились полосы
Появились полосы

Чтобы это исправить нужно сделать парочку действий:

Добавить камере Pixel Perfect Camera и поставить галочку у Pixel Snapping:

Теперь можно подумать над расширением локации и создании новых. Но как переходить между ними?

Для этого сначала нам создать Prefab'ы Персонажа и Камеры. Для этого создадим отдельную папку Prefab и из окна Иерархии перенести нужные нам объекты в эту папку.

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

Теперь осталось добавить "порталы" в другие сцены. Для этого или создаем карту тайлов и, соответственно, добавляем Тайлы или просто переносим спрайт "портала" (я использую карту тайлов).

Добавляем Тайлам все те же Composite'ы, что и земле. Только поставим галочку:

-4

Далее добавляем скрипт и пишем следующий код:

id можно узнать в  File - Build Settings
id можно узнать в File - Build Settings
  • Здесь используется встроенный в Unity метод OnTriggerEnter, т.е. он срабатывает, если мы вошли в объект. В скобочках указывается то, что пришло во взаимодействие.
  • Дальше проверяется имя объекта, который вошел в Триггер.
  • Если имя совпадает, то мы подгружаем нужную нам сцену.

Теперь Вы можете бегать по сценам!

В следующей статье мы добавим врагов.