Найти тему
NoT ZaTroTing

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

Здравствуйте! В этой статье мы добавим такую игровую механику как Чекпоинты (Checkpoints).

Но для начала улучшим предыдущую, а именно уничтожение лягушек под нами: добавим дымок после смерти и отскок от них. Для этого добавим объект "Дымка", а именно объект, который будет лишь воспроизводить анимацию и появляться на месте лягушки. Добавляем его в Prefab.

Теперь идем в код. Вместо вызова метода, уничтожающего объект, будем вызывать Коратину, в которую передадим collision:

.6f -длина анимации
.6f -длина анимации

Разберем новую строчку:

  • go = ... - создание объекта anim ("Дымок"), в котором координаты лягушки, и запоминаем его в переменную.

Вот такой результат получается:

Мелочь, а уже выглядит интереснее
Мелочь, а уже выглядит интереснее

Перейдем теперь к Чекпоинтам

Выбираем спрайт (у меня это вишня), который будет нашей точкой сохранения и переносим на сцену. Нам надо, чтобы он уничтожался при взаимодействии с персонажем и сохранял его местоположение.

Для этого добавляем к вишне Скрипт, в котором будет проверяться соприкосновение с игроком, и уничтожим объект:

Уничтожается вишня, а не игрок
Уничтожается вишня, а не игрок

this.gameObject - ссылка на текущий игровой объект (объект, к которому прицепили Скрипт).

Чтобы сохранять координаты игрока, можно воспользоваться PlyerPrefs:

Такие данные сохраняются в реестр
Такие данные сохраняются в реестр

В xPos, которая является "переменной", мы сохраняем координату X игрока, аналогично с yPos.

Осталось во время загрузки Сцены подгружать эти координаты:

Вот так просто можно реализовать Чекпоинты в игре!