Этот урок посвящен работе с Blueprints и реализации функционала перехода игрока на другую карту.
Работа с объектами в Blueprints
Добавим на сцену сферу (местоположение неважно). Чтобы связать Blueprint с объектом, выберем его и нажмём кнопку «Open Level Blueprint». В открывшемся окне представлены все Blueprints карты. Выберем сферу, кликнем правой кнопкой мыши и выберем «Create reference to sphere». Теперь у нас есть ссылка на сферу, с которой можно взаимодействовать.
Создадим функционал, устанавливающий сферу в точку расположения игрока при запуске игры. От ссылки на сферу проведём соединение к блоку «Set Location». В качестве объекта укажем сферу. В поле «Location» можно ввести координаты вручную, но мы воспользуемся координатами игрока. Найдём основного игрока, кликнем правой кнопкой мыши и выберем «Create reference to» (имя игрока). От ссылки на игрока проведём соединение к блоку «Get Location». Выходное значение («Return Value») подключим к полю «Location» блока «Set Location» для сферы. Таким образом, при запуске игры (событие «Event Begin Play») сфера будет устанавливаться в координаты игрока. Для постоянного следования сферы за игроком используйте событие «Event Tick» вместо «Event Begin Play».
Для корректного перемещения сферы, уберите атрибут статичности в её свойствах. Подробное изучение всех блоков Blueprints рекомендуется проводить по мере необходимости.
Создание функционала перехода на другую карту
Реализуем функционал перехода на другую карту при взаимодействии игрока с дверью. Сохраним текущую сцену и создадим новый уровень («House Map»). Сохраним новый уровень. Вернёмся к основной карте («Main Map») и сохраним её.
Создадим новый Blueprint Class, например, «Door Collision», для отслеживания столкновений игрока с дверью. Добавим компонент «Box Collider» – прозрачный куб, определяющий зону взаимодействия. Изменим размеры куба, чтобы он напоминал дверь. Добавим обработчик событий «On Component Begin Overlap» – он срабатывает при первом соприкосновении объектов. В Blueprints используем блок «Get Player Character» для получения ссылки на основного игрока. Для проверки соприкосновения используем блок сравнения (проверка на совпадение Actor с основным игроком).
Для тестирования добавим блок «Print String» с сообщением «Hello». Поместим объект «Door Collision» на карту, отрегулируем его размер и положение, и проверим работу. Сообщение «Hello» должно появиться в левом верхнем углу экрана при соприкосновении с дверью. Удалим блок «Print String» и заменим его на блок «Open Level», указав имя новой карты («House Map»). Проверим функционал перехода на новую карту.
В этом уроке мы рассмотрели работу с Blueprints и реализовали функционал перехода между уровнями. Подробное изучение всех функций Blueprints лучше проводить на практике, создавая новые функциональные возможности.