Создание главного меню игры

в 13:08, , рубрики: Unreal Engine, меню, настройки, Программирование, разработка игр

Создание главного меню игры - 1

Здравствуйте, меня зовут Дмитрий. Я занимаюсь созданием компьютерных игр на Unreal Engine в качестве хобби. Разрабатывая игры каждый из нас сталкивается с необходимостью создания меню игры, в котором можно осуществлять настройки, а также выбирать режимы игры. В этой статье я покажу каким образом эту проблему решил я. Как обычно все исходники будут представлены в конце статьи.

Весь код я упаковал в плагин. После того как вы скопируете плагин в ваш проект, вам нужно будет создать новый класс HUD, который должен быть производным классом от MainMenuPluginHUD. Через данный класс осуществляется все управление. Вот его настройки.

TextScale, MarkColor, MarkLenght — Параметры отвечающие за отображение информации на радаре.

SoundClass — В настройках есть уровень громкости, соответственно сюда нужно поместить SoundClass к которому будут привязаны звуки, которыми вы хотите управлять.

MainMenuMapName — Имя уровня на котором будет отображаться главное меню. То есть при загрузке этого уровня будет включен режим MainMenu на остальных уровнях будет включен режим GameScreen.

Дальше идет перечень виджетов отвечающие за определенные режимы меню.

GameScreenWidget — Виджет выводящийся на экране игры.

MainMenuWidget — Главное меню выводящиеся в начале игры.

GameMenuWidget — Меню выводящиеся во время игры.

SettingsMenuWidget — Меню настроек игры.

KeyBindMenuWidget — Меню назначения клавиш.

TitlesMenuWidget — Меню титров.

ControlWidget — Экран описывающий управление игры.

Все виджеты располагаются в папке Content плагина, если вы их не видите у вас снята опция «Show Plugin Content».

Кроме этого имеются функции:

SetMainMenuMode — Установить текущий режим меню в качестве параметра получает EMainMenuMode.

GetMainMenuMode — Получает текущий режим.

Вызов меню игры

image

Все режимы меню описаны в файле MainMenuMode.h. Добавлять новые режимы или удалять старые нужно там.

ButtonClick и GetButtonName — Необходимы для работы кнопок. Кнопки содержат внутри себя переменную EMainMenuPluginButtonType и при нажатии на кнопку или её спавне происходит вызов соответствующей функции с этим параметром.

Все кнопки описаны в файле MainMenuPluginButtons.h. Добавлять и удалять кнопки нужно там-же.

SetPropertyInt, GetPropertyInt, GetPropertyNameInt — Тоже самое но для виджета SIntProperty_Wiget. Данный виджет предназначен для отображение целых чисел в меню настроек. Кроме параметров Int, имеются также bool и float.

Все параметры описаны в файле MenuSettingsProperty.h.

Кроме HUD'а нужно создать класс GameInstanse производный от MainMenuGameInstance. Чтобы Game instanse работал его нужно выбрать в ProjectSettings->Maps&Modes->GameInstanseClass. Это позволит вам отображать экран загрузки. (Экран загрузки не работает при запуске игры во вьюпорте)

GameInstanse имеет всего два параметра это:

LoadingScreenWidget — Виджет отображающийся при загрузке.

LogoMovie — Имя ролика с лого (без разрешения). Ролик обязательно должен лежать в папке Content/Movies вашего проекта в другие папки его класть нельзя. Ролик обязательно должен иметь разрешение 720p и частоту кадров 25fps, иначе UE его не сможет воспроизвести, это странно учитывая тот факт, что сами Эпики выкладывают Лого на своём сайте в разрешении 1080p и 60fps.

На этом все.

Ссылка для скачивания плагина

Автор: deema35

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js