Как сделать круговое меню в unity
Любой нормальной игре нужно меню, хотя бы простое должно быть. Менюшки делятся на два вида, экран приветствия и внутриигровое меню. Иногда их делают одинаковыми, но на наш взгляд это не совсем удачное решение. В процессе игры, главная задача меню, обеспечить быстрый доступ к основным настройкам, без нагромождения графических украшений и прочей мишуры. В общем, NULLcode Studio представляет Вам проект меню, которое предназначено для использования как внутриигровое, то есть, при вызове ставит игровой процесс на паузу и дает возможность настроить: аудио, видео, клавиши управления и прочее.
- Сохранение настроек в файл.
- Проверка файла сохранения на наличие ошибок.
- Настройки разрешения экрана.
- Настройки качества изображения.
- Настройки режима экрана: Полноэкранный / В окне.
- Изменение клавиш управления.
Примечание:
В редакторе Unity список разрешений экрана недоступен.
Использование:
Перетащите на сцену префаб GameMenu_UI, а также в сцене должен быть объект EventSystem, если его нет, то добавьте GameObject -> UI.
_menu - если меню активно, то true.
soundValue, musicValue - для звуков и музыки соответственно.
keys - массив клавиш управления.
Пример. Допустим надо, чтобы персонаж двигался вперед, какой элемент массива использовать? Считать надо сверху вниз в меню настроек управления, как и в обычном массиве.
Всё достаточно просто.
Можно добавить больше клавиш управления или убрать лишние, для этого нужно отредактировать визуальную часть меню и массив defaultKeys. Вообще графически менюшка выглядит просто, но изменить всё это, под свою игру, не составит особого труда.
- В Hierarchy создайте Creat Empty и назовите его допустим GameMenu. Зайдите в GameMenu и в Inspector-Canvas-Rendere Mode выберите Screen Space — Camera. Затем перетащите Main Camera из Hierarchy в Render Camera. Поправьте Order in Layer, чтобы кнопка была выше игровых слоев.
- Внутри GameMenu создайте UI-Panel. Внутри Panel создайте UI-Button. Это будет кнопка Pause, нажав на которую мы поставим игру на паузу и вызовем меню. Покопайтесь в настройках Panel и Button и оформите внешний вид.
- В Hierarchy создайте дубликат GameMenu и назовите его допустим PauseMenu. Создайте в нем кнопки Play, Exit, текстовый заголовок Menu, например. Pause тут нам не нужна, ее можно переименовать в Play или Exit или просто удалить.
- В Project создаем New Script. Назовем его MenuContoller. Пишем следующий код:
- Открываем PauseMenu, в Inspector добавляем новый компонент, выбираем в списке наш MenuController.
- Открываем кнопку Exit. В Inspector внизу в OnClick нажимаем плюс, перетаскиваем в None наше меню PauseMenu из Hierarchy, выбираем MenuControls.ExitPressed. Должно получиться так.
- Выход из игры мы реализовали.
- Открываем кнопку Play. В Inspector в OnClick нажимаем +, перетаскиваем Game, про который говорил в п. 1. Выбираем рядом GameObject.SetActive. Ставим галочку. Это означает, что при клике на кнопку Play станут отображаться все объекты из Game.
- Теперь нам надо при клике отключать PauseMenu и включать GameMenu, чтобы кнопка Pause отображалась. Делаем все по аналогии по п. 9. См. рисунок выше, так должно получиться в итоге.
- Кнопка Play теперь у нас включает игровые объекты, кнопку Pause и выключает стартовое меню.
- Осталось запрограммировать кнопку Pause. Открываем ее и делаем следующие настройки, чтобы при клике на паузу отключались кнопка Pause, игровые объекты и включалось стартовое меню:
- Теперь для старта игры и проверки нужно включить/отключить соответствующие группы объектов. PauseMenu должен быть включен, GameMenu и Game выключены. Открываем соответствующую группу, в Inspector ставим или снимаем галочку:
- В итоге должно получиться примерно так:
- Я тут еще сгруппировал GameMenu и PauseMenu в Menu для удобства. Но это не обязательно. Enjoy!
Unity3D - версия не имеет значения.
Интерфейс - знание движка в лицо, ну или хотя бы со стороны.
Прямые руки - с рождения.
Часть первая. Подготовка к работе.
1. Для начала, конечно же, откройте сам Unity3D и создайте новый, чистый проект. А как? File --> New Project.
2. Создайте его в пути, не имеющий кириллицы. И не отмечайте галочки, нам вполне сойдет стандартный набор инструментов.
3. Перед нами голый проект, на котором мы создадим ваше первое меню.
4. Создайте новый скрипт нажатием ПКМ (правой кнопкой мыши), во вкладке Project.
Create --> JavaScript.
5. Назовем его TextControl. Щелкните два раза ЛКМ (левой кнопкой мыши) по названию скрипта.
Часть вторая. Сборка сцены.
6. В свежей сцене создайте Plane и четыре куба через вкладку GameObject --> Create Other --> Plane, Cube.
7. Так же добавьте Point Light для эффекта.
8. У вас должно получится что-то в этом духе.
9. Теперь создайте три 3D текста. GameObject --> Create Other --> 3D Text. Не забудьте развернуть их по оси Y на 180 градусов.
10. Расположите текст так, чтобы они были в середке кубиков. Текст можно вписать в Inspector --> Text Mesh --> Text.
Получилось вот что.
11. Выделите все объекты в Hierarchy и нажмите сочетание клавиш Ctrl+D.
12. Отодвиньте все объекты вправо и переименуйте текст в Fastest, Fantastic и Cancel.
13. Камеру находящаяся над главный меню назовите Camera1, а вторую, находящуюся над настройками графики, Camera2.
14. Создайте папочку Scenes нажатием ПКМ во вкладке Project. Create --> Folder.
15. Сохраните сцену под названием MainMenu и поместите ее в папку Scenes. File --> Save Scene.
Если все идеально, должно получится прямо как у меня.
Часть третья. Контроль текста.
16. Откройте скрипт TextControl и приготовьтесь писать.
17. Для начала давайте создадим переменную isNewGameButton, при которой объект будет загружать сцену.
Примечание: Почему false? Потому-что при true переменная будет срабатывать сразу.
18. Лучше не раскатывать тесто, и сразу выставить нужные переменные.
19. Теперь давайте разберем самое интересное. При входе на объект курсора мыши, его материал моментально изменяется.
Смена материала на серый цвет при входе курсора будет осуществляться таким образом:
А возвращение материала в прежний вид при выходе курсора выглядит так:
Примечание: Белый цвет, точнее Color.white, возвращает обычный цвет текстуре.
20. Сейчас мы начнем делать нажатие на объекты.
Нажатие осуществляется через:
А чтобы занять чем-то нажатие, мы составим свойства для каждой переменной.
Для начала возьмем переменную IsQuitButton:
Примечание: Application.Quit() осуществляет выход из игры полностью.
Теперь возьмем переменную ужасной графики.
Примечание: else дает возможность работать в OnMouseUp() много раз. А QualitySettings.currentLevel = QualityLevel.Fastest изменяет графику на уровне.
Примечание: Тоже самое что и выше, но теперь с максимальной графикой.
Теперь возьмем переменную загрузки уровня.
Примечание: Application.LoadLevel () дает возможность загружать уровень. А число в скобках пишут для точной загрузки нужного левела.
21. Теперь поработаем с камерами. Создайте новые две переменные:
А теперь продолжите таким образом:
Примечание: Мы работаем с нажатием, и таким образом, когда вы щелкаете на кнопке Options, первая камера отключается, а вторая начинает функционировать.
22. Ну и последнее что нам нужно, это возвращение из игры в меню.
Добавьте в конце закрывающуюся скобку >.
Часть четвертая. Сборка меню.
24. Назначьте готовый скрипт ко всем кнопкам в сцене.
25. Теперь смотрим в Inspector --> Text Control (Script) и разбираем.
Для начала выберите кубик с New Game и поставьте галочку Is New Game Button.
Затем щелкните кубик с Options и поставьте галку Is Options Button. А еще в поле Camera 1 вставьте первую камеру, а в поле Camera 2, вторую.
На кубике Quit галку Is Quit Button.
Сейчас мы переходим на место с настройками. Выделите куб Fastest и поставьте галочку Is Quality Button Fastest. Так же Fantastic, но уже Is Quality Button Fantastic.
Выделите кнопку Cancel, поставье галочку Is Options Button, и вставьте в поле Camera 1 вторую камеру, а в поле Camera 2, первую.
Примечание: Почему? Потому-что нам нужен обратный процесс.
Для загрузки сцены (1), то есть, Is New Game Button, при компиляции, выставьте уровень под нужным вам числом. И не забудьте изменить значение в скрипте!
Так же, если потребуется выйти из уровня обратно в меню, используйте переменную Is Main Menu Button.
26. Теперь посмотрим что получилось.
Если все в порядке, значит я не зря писал данный урок :)
А если возникли какие-то проблемы, пишите, помогу всем, чем смогу.
Спасибо за внимание, с вами был Валентин. Желаю успехов в игрострое!
Ну а в следующем уроке я расскажу, как улучшить меню в плане возможностей ;)
Всем здарова! С вами ICE CREAM! Получи стипендию от XYZ School: bit.ly/3plNSK6 В этом видеоролике мы сделаем .
В этом ролике я сделал меню, это очень легко, я постарался рассказать про канвас, про кнопки и UI элементы. Сделал .
В этом уроке мы с Вами рассмотрим как сделать динамичное главное меню в Unity. Изменение цвета при наведении, .
Изучаем основы создания интерфейса в Юнити на примере стартового меню. Разбираем базовые аспекты работы с UI и .
В этом видео мы научимся создавать не сложное меню настроек, а также рассмотрим функционал нескольких UI .
Всем дарова! В этом видео как я и обещал мы будем создавать механики игры STALKER в Unity. Для начала мы создадим .
Всем привет, сегодня работаем с UI интерфейсом в таком игровом движке как Unity. А именно, я покажу вам как создать .
В данном уроке я постарался рассказать, как создать простое главное меню из двух основных кнопок: Начать игру .
Мы продолжаем создание игры. В этот раз мы создадим для нашей игры меню. А так же подробно разберем что такое UI и .
Учимся анимировать кнопки меню в Юнити. Я покажу простой способ оживить интерфейс и объясню некоторые нюансы .
В этом видеоуроке я покажу, как сделать Snap Scrolling Menu (Скроллинг меню с привязкой). Урок поделён на две части.
В этом видео, я покажу, как реализовать выпадающее меню в Unity. Номер VISA карты для поддержки - 4149629398195479 .
Драсте. Вот и новое видео на канале. В нём я буду рассказывать как сделать выбор персонажа в меню.Так же я расскажу .
Привет! В этом видео мы продолжаем создавать 3D раннер на движке Unity. Сегодня я покажу тебе как создать главное .
Всех приветствую в последнем видео, из серии роликов во время которой, я показываю, как создать 2д игру на таком .
Привет! сегодня мы с тобой сделаем красивое главное меню для игры Приятного просмотра) Контакты: ВК: .
Хочешь выучить Unity (юнити) всего за 1 час и при этом сделать это качественно? Тогда смотри от профессионала как!
В этом видео мы научимся создавать главное меню для игр и приложений в Unity, без написания кода, при помощи плагина .
Как создать меню в Unity 3d Шестой урок по созданию своей собственной игры на движке Unity3d. В этом уроке создаем .
Читайте также: