Адрес кейса: https://www.unrealengine.com/marketplace/zh-CN/product/simple-menu-ui
Это демо простое и имеет базовую структуру, с которой можно начать обучение
1. Вход в UE5
1) Сначала проверьте Project-Maps&Modes и найдите стандартную карту запуска, GameMode и GameInstance; кроме того, необходимо также проверить настройки ввода.
2) При запуске программы UE5 по умолчанию запускаются GameInstance, GameMode и default Map;
- Тогда программа LevelBlueprint на Карте запустится по умолчанию, а в WorldSettings Карты будут также вызваны для запуска привязанные Pawn, HUD, PlayerController....
- Кроме того, программа GameMode запустит и запустит связанные Pawn, HUD, PlayerController... (обычно выберите место на карте или GameMode для привязки).
- Есть 2 входа в SimpleMenuUIv3, LevelBlueprint of Level_MainMenu и Blueprint_GameInstance;
Описание GameInstance, GameMode, PlayerController:
- GameInstance предназначен для установки глобальных переменных или функций для всех GameMode и т. д., понимаемых как высший уровень;
- GameMode — установить переменную или функцию на определенной Карте или в определенном игровом режиме, а также сделать междоменными все скрипты персонажей в этом режиме;
- PlayerController — это сценарий персонажа, потому что главный герой игры очень важен, и основан на объектно-ориентированном мышлении. В подобных скриптах часто бывает много функций и переменных этого объекта.
- GameInstance->GameMode->PlayerController формирует послойную структуру управления.
Подведем итог:
- Для входа в UE5 необходимо проверить GameInstance (пользовательский), GameMode (пользовательский), LevelBlueprint и найти пользовательский Pawn, HUD, PlayerController и т. д.;
- Программное мышление UE5 является объектно-ориентированным мышлением, и другие объекты Актера обычно ждут вызова программы входа или других вызовов событий.
2. Blueprint запускает LevelBlueprint
- Дело пишет операцию UMG в GameInstance, где получается GameInstance, и запускаются два события LoadSettings и ShowOpeningWidget.
3. Глобальный план Blueprint_GameInstance — UI Open (UI open/start)
1) Несколько ключевых моментов для открытия пользовательского интерфейса: определить, следует ли создавать виджет, Создать виджет, чтобы создать пользовательский интерфейс, ДобавитьToViewport, чтобы добавить область просмотра, Показать курсор мыши, чтобы указать, отображается ли мышь, Установить режим ввода..., чтобы установить режим ввода.
2) Show Opening Widget открывает домашнюю страницу
- Определите, отображать ли страницу ожидания Start или страницу главного меню MainMenu в соответствии со значением Bool.
3) Показать стартовый экран, чтобы открыть страницу в режиме ожидания
- Если StartScreen пуст, создайте виджет и сохраните, -> Добавить в область просмотра -> Показать курсор мыши -> установите логическое значение; эти шаги являются рутинными операциями UMG.
- логическое значение, чтобы изменить, следует ли входить на страницу ожидания StartScreen после нажатия Enter или напрямую входить на страницу главного меню MainMenu.
4) Показать главное меню Показать страницу главного меню
- Существует 3 типа «Установить режим ввода», «Только пользовательский интерфейс», «Только игра» и «Игра и пользовательский интерфейс»; соответственно, он может управлять только интерфейсом пользовательского интерфейса, только управлять игровым интерфейсом или обоими.
4. Стартовая страница Widget_StartScreen
- Запустите страницу режима ожидания, нажмите Enter, чтобы войти на страницу меню.
- График виджетов
1) Анимация:
- Воспроизведение анимации пользовательского интерфейса, анимация дыхания FadeLoop устанавливается в виджете, вы можете использовать элемент управления анимацией для отладки
- Его нужно добавить в график для воспроизведения:
2) Действие ввода: нажмите Enter, чтобы ввести соответствующий
- Listen for Input Action — это ответ на ввод, подготовленный для UMG. Его также можно реализовать с помощью InputAction Enter для тестирования, но этот узел предоставляет больше функций. Значение Consume Bool может контролировать, является ли Callback действительным.
Следующий ответ Enter действителен
3) Родительский класс: BaseWidget_AnimatedCanvas
- Все входы и выходы пользовательского интерфейса в этом случае имеют простую анимацию, поэтому функция абстрагируется в этот родительский класс. Включая анимации Animate_Out и Animate_In 2
- Как позвонить:
- Когда этот виджет создается в первый раз, он одновременно вызывает Construct родительского класса.
- Как выводить страницы:
- Вызовите событие Remove Widget родительского узла, а затем вызовите событие Show Main Menu экземпляра, событие Remove Widget родительского узла:
- Сначала воспроизведите анимацию Animate Out, а затем после того, как анимация завершит обратный вызов события, Удалить из родительского
узла Удалить из родительского узла: удалите этот виджет из его родительского узла на уровне пользовательского интерфейса, короче говоря, удалите страницу.
Объект Create Widget не будет удален, может отображаться только Add to Viewport.
4)Вызов удаления от родителя:
В Animation Finished имеется событие Event Dispatchers под названием «Удалить из родительского
вызова», которое запускает событие привязки. Но здесь не найдено Привязки, соответствующей Зову, так что, похоже, это не имеет никакого эффекта. Если есть такая программа, то она может ответить на Звонок.
5. Главная страница Widget_MainMenu
- страница главного меню
1) Текстовая привязка данных экземпляра игры
- Страница Text связывает данные через Bind, данные поступают из Game Instance -> GameInfo -> *, структура Struct_GameInfo
2) Класс кнопки WidgeClass_Button (готовый)
-
Кнопки в MainMenu, используйте класс WidgeClass_Button
-
Создайте текст кнопки и 2 переменные цвета, которые отображаются в MainMenu и могут быть установлены
-
Анимация кнопки, создание анимации TextHover (увеличение), воспроизведение анимации вперед и назад (увеличение и уменьшение) и установка цвета текста
-
настройки по умолчанию
-
настройки анимации
Инициировать пользовательское событие Call On Click через планировщик событий
- С тех пор доступны текст кнопки и другие настройки, настройки анимации и интерфейсы событий нажатия.
3) Вызов при нажатии кнопки обратного вызова
- В Widget_MainMenu Graph создайте переменную Game Instance и привяжите Event к On Click;
- Привязка обратного вызова, удаление виджета, а затем запуск события «Показать меню одиночной игры» в экземпляре игры.
Резюме: Пользовательский интерфейс прост в использовании логики, заходите сюда первым и желаю всем гладкой разработки~