Создание меню паузы в Unity

Создание меню паузы в Unity06:36

Информация о загрузке и деталях видео Создание меню паузы в Unity

Автор:

ITNoob

Дата публикации:

17.04.2021

Просмотров:

56K

Транскрибация видео

Привет всем!

В этом видео мы рассмотрим создание меню паузы, которое будет состоять из двух элементов «Продолжить игру» и «Возвращение в главное меню».

Сначала создадим кнопку для включения меню паузы.

Переходим в окно сцены, Canvas у нас уже есть, а мы добавим ему новый UI элемент Button.

Переименуем его в PauseButton и удалим вложенный в него элемент Text.

Теперь вставляем нужный нам спрайт с изображением кнопки паузы в поле Source Image.

Выставляем ей нужный размер, у меня это 136 на 126 и перемещаем в нужное место.

Далее опять же в Canvas создаем новый UI элемент Panel.

Изменим цвет на черный, что даст нам эффект затемнения при нажатии паузы.

Переименуем Panel в Pause Menu.

Также нам нужно будет изменить в поле Source Image Background на Known.

Теперь в Pause Menu создаем UI элемент Button и переименовываем его Resume Button.

Это будет кнопка «Продолжить».

Выбираем спрайт с изображением кнопки Продолжить и вставляем его в поле Source Image.

Выставляем нужный размер, у меня это 500х167 и перемещаем в нужное место.

Не забываем удалить вложенный элемент текст и создаем дубликат данной кнопки.

Переименуем ее Back to Menu Button.

Она будет возвращать нас в главное меню.

Выбираем необходимый спрайт с изображением кнопки, вставляем в Source Image и перемещаем кнопку чуть пониже кнопки Продолжить.

На этом визуальная часть у нас готова и мы можем отключить видимость меню паузы.

Переходим в пауз меню и снимаем птичку в окне Инспектор.

Теперь в Canvas добавляем компонент New Script.

и называем его PauseMenu.

Открываем наш скрипт.

Сверху допишем, что мы будем использовать Unity Engine Scene Management.

Удаляем пустой метод Start и создаем новую переменную public типа bool

Назовем ее PauseGame.

Далее создаем поле Public GameObject и назовем его PauseGameMenu.

Далее переходим к методу update и сделаем так, чтобы наша пауза включалась и отключалась при нажатии на кнопку escape.

Записываем if input.getkdown kcode.escape и условие if pause game resume else pause.

То есть если игра на паузе, то при нажатии escape возобновить, а во всех остальных случаях поставить на паузу.

Теперь опишем, что же будут делать эти два метода resume и pause.

Создаем метод public void resume.

В теле пишем pauseGameMenu.setActive false.

Меню паузы не активно.

Далее time.timescale равно единице.

Время в нормальном режиме.

И pauseGame равняется false.

Игра не на паузе.

Создаем следующий метод public void pause.

В теле записываем pauseGameMenu.setActiveTrue.

Меню паузы включено.

TimeTameScale равняется нулю.

То есть время заморожено.

И pauseGame равняется true.

Игра на паузе.

Итак, нам остался последний метод для перехода в меню.

Записываем public void loadMenu.

В тело записываем time.timescale равно 1.

Переводим время в нормальное состояние.

Если этого не сделать, то при нажатии на паузу выхода в меню и снова входа в игру будем иметь сцену на паузе.

Далее записываем scene-manager.loadscene и в кавычках название нашей сцены с меню.

Итак, наш скрипт готов, сохраняем его и закрываем.

Теперь выбираем наш Canvas и видим в инспекторе в скрипте Pause Menu у нас появилось новое поле Pause Game Menu.

Переносим и вставляем в него объект Pause Menu.

Далее выбираем кнопку Продолжить Resume Button.

На спектре находим onClick, нажимаем плюс, вставляем сюда объект Canvas с нашим скриптом, no function, выбираем PauseMenu и метод Resume.

Теперь переходим к кнопке MenuBackToMenuButton, onClick нажимаем плюс, non-object вставляем Canvas, no function, PauseMenu и выбираем LoadMenu.

У нас осталась последняя кнопка Pause Button.

Выбираем ее.

Также On Click.

Нажимаем плюс.

Вставляем Canvas.

No Function.

Pause Menu.

И выбираем Pause.

Итак, осталось проверить, что у нас получилось.

Нажимаем на кнопку паузы.

Включается пауза.

Нажимаем продолжить.

Игра продолжается.

Нажимаем меню, переходим в главное меню.

Напомню, что меню паузы здесь также будет доступно по нажатию кнопки SK.

А на этом у меня все.

Всем удачи.

Пока.