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

Информация о загрузке и деталях видео Создание меню паузы в 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.
А на этом у меня все.
Всем удачи.
Пока.






