Найти тему
Margarita Nadzhip

Генерация геометрических фигур из кубиков для Арканоида на UE5

Оглавление

Если вы, как и я, начали проходить курс по разработке игр на Unreal Engine 5 от Skillbox, то наверняка при разработке арканоида вы задались вопросом: "А как сделать разные уровни для игры и расположить кубики по другому?" 🤔🤔🤔

Что ж, круто, что вы к этому пришли! Можно интересно разнообразить свой проект бонусами и уровнями, чтобы после упаковки вы получили полноценную игру, которую можно закинуть в портфолио.

Погнали!

Уровни

1) Создаем Enumeration и прописываем внутри сколько будет уровней. Ну и можно дать им дескрипшены для понимания

Создаем папку и делаем енумерацию
Создаем папку и делаем енумерацию
Уровни можно удалять и добавлять
Уровни можно удалять и добавлять

2) Идем в Game Instance и добавляем туда новую переменную "Level Typе". В Variable Type выставляем наш Enumeration из первого пункта. Больше тут делать ничего не нужно.

Game Instance
Game Instance

3) Далее создаем виджет с возможностью выбора уровня. В Graph создаем функцию и называем ее Game Instance.

Обязательно добавляем туда Return ноду
Обязательно добавляем туда Return ноду

4) Открываем Event Graph - вытаскиваем функцию - вытаскиваем из нее Set Level Type (то, что записывали в пункте 2 в инстанс)

Event Graph в виджете в уровнями
Event Graph в виджете в уровнями

На клик по кнопкам ставим один из уровней. После ставим открытие вашей основной карты.

5) Идем в блюпринт, в котором вы делаете генерацию кубиков. Создаем там такую же функцию с Game Instance, как в пункте 3.

Левелы делайте в Event Graph, а не в констракшене. Иначе при упаковке игры выбор не сохранится, так как скомпилируется только один вариант расстановки кубиков.
Левелы делайте в Event Graph, а не в констракшене. Иначе при упаковке игры выбор не сохранится, так как скомпилируется только один вариант расстановки кубиков.

Вытаскиваем функцию с инстансом. Из нее тянем Level Type и Switch on Level Enumeration.
Далее на каждый из левелов создаем разные варианты фигур. У меня они закинуты в функции для удобства.

Квадрат

Квадрат прямо по курсу делаем. Пусть будет первым уровнем.

Ноды
Ноды
Итог
Итог

Ромб

Ноды
Ноды
Итог
Итог

Треугольник

Ноды
Ноды

Обратите внимание: у нас идет одна переменнаая X_Triangle. А после For Loop мы из индекса вытаскиваем локальную переменную.

Итог
Итог

Лесенка

Ноды
Ноды
Итог
Итог


Всем спасибки! Если вы придумали свои варианты - делитесь ими в комментах! Также спасибо моему куратору по курсу - Илье. По всему выше он очень сильно помогал)

🤎🤎🤎