Меню паузы является неотъемлемой частью большинства видеоигр, преимущественно одиночных, ведь такие игры можно остановить и спустя некоторое время вернуться, чего не скажешь про многопользовательские онлайн проекты, где пауза может вызвать неудобство у других игроков.

В этом руководстве пойдет речь о меню паузы для одиночных игр на Unreal Engine 5, но вы можете использовать такое меню в любых других проектах и переделать по своему желанию. Созданное мню меню будет иметь 3 кнопки: Продолжить; Уровни; Выйти в главное меню, а включение паузы будет останавливать игру.

Эта статья является одной из четырех частей руководства, посвящённого созданию игровых меню в Unreal Engine 5:
  1. Как сделать главное меню игры в Unreal Engine (UE5)
  2. Как сделать меню настроек в Unreal Engine (UE5)
  3. Как сделать меню выбора уровней в Unreal Engine (UE5)
  4. Как сделать меню паузы игры в Unreal Engine (UE5)

Создание меню паузы (Widget Blueprint)

Первое, что необходимо сделать, это создать новый блюпринт меню паузы: ПКМ — User Interface — Widget Blueprint. Я его назвал «WBP_PauseMenu». После этого был создан прототип меню с кнопками и вложенными в них текстом обозначающим эти кнопки. А для лучшей выразительности добавлено легкое размытие фона (Blur) и затемнение (изображение залитое черным цветом с альфой 0,2).

После этого можно перейти в граф (Graph) и настроить кнопки. В моем случае это три кнопки, две из которых открывают уровни, а одна продолжает остановленную игру. Если открыть уровень не составит труда, так как используются всего две ноды, событие по нажатию на кнопку и нода Open Level. То вот с кнопкой продолжения игры могут возникнуть трудности, на ней я и остановлюсь. К действию по нажатия на кнопку продолжения я добавил следующую логику:

On Clicked (ResumeButton) — Set Game Paused (Paused: OFF) — Set Input Mode Game Only (связан с Get Player Controller) — SET Show Mouse Cursor (Show: OFF, связан с Get Player Controller) — Cast To Character (связан с Get Player Character) — SET IsPausedMenuOpened (OFF; связана с Cast To Character; булева переменная, которую я создал в блюпринте персонажа) — Remove from Parent.

Добавление кнопки паузы

Перед тем, как вызывать паузу в игре, нужно добавить кнопку, которая это будет делать. Для этого можно открыть окно настроек проекта (на верхней панели инструментов нажать Edit, а затем Project Settings) и добавить новый «ввод» (Engine / Input — Bindings / Action Mappings “+”).

Включение меню паузы

Логика включения паузы в моем случае будет находится в блюпринте персонажа, это на мой взгляд наиболее удобно для большинства игр. Как написал ранее, я уже создал в блюпринте персонажа одну булеву переменную, которую назвал «IsPausedMenuOpened» и теперь остается создать еще одну, которую назову «PauseMenuWidget», а тип ее будет WBP_PauseMenu (мой Widget Blueprint меню–паузы).

Наконец, можно переходить к логике включения паузы:

InputAction Pause (или любая кнопка на которую необходимо вызывать паузу) — Branch (связан с IsPausedMenuOpened) — Create Widget (Widget Blueprint меню–паузы) — Add to Viewport (связан с Create Widget) — SET IsPausedMenuOpened (ON) — Set Game Paused (связан с SET IsPausedMenuOpened) — Set Input Mode Game And UI (Player Controller связан с Get Player Controller; In Widget to Focus связан с Pause Menu Widget) — SET Show Mouse Cursor (Show: ON; Target связан с Get Player Controller).

Надеюсь у вас получилось создать меню паузы и настроить его для своей игры. Руководство получилось достаточно коротким и простым, но меню можно значительно расширить, например добавив кнопку открывающую настройки или кнопку сохранения и загрузки игры. А если у вас появились вопросы или сложности с реализацией, пишите в комментарии и мы обязательно вам поможем!

Great Creator