Unity: Главное меню игры — урок 5

Главное меню — важная часть любой игры. В этом уроке мы создадим простое, но функциональное меню.

Создание элементов меню

Создадим кнопки «Instagram», «Магазин» и «Музыка», а также логотип игры. Для этого продублируем существующий объект restart (клавиши Ctrl + D в Windows), переименовав дубликаты в insta, shop и music. Заменим спрайты на соответствующие изображения (доступны для скачивания по ссылке в описании). Установим для всех спрайтов тип Sprite и Max Size 256. Подгоним размеры элементов под размер кнопок. Добавим логотип (например, переименованный объект CubeTower), растянув его пропорционально (клавиша Shift) до нужного размера и разместив по центру сверху. Добавим изображение «руки» (hand). Установим размеры и позиции всех элементов, используя якоря (Anchors) для привязки к экрану.

Функционал кнопок

Создадим публичную функцию LotInstagram():

public void LotInstagram()
{
    Application.OpenURL("ссылка на Instagram");
}

Привяжем её к кнопке insta в инспекторе. Для кнопки shop пока оставим событие нажатия пустым. Для кнопки music добавим необходимую функциональность (реализация не приведена в этом уроке).

Шрифты и цвета

Заменим стандартный шрифт логотипа на выбранный (например, Montserrat) из fonts.google.com. Импортируем его в папку Fonts проекта и применим к тексту логотипа. Экспериментируем с жирностью и размером шрифта. Изменим цвет текста части логотипа «Tower», используя тег <color=#303030> для темно-серого цвета.

Анимация

Создадим анимацию для логотипа (logoText) и изображения «руки» (handAnim). В редакторе анимации добавим ключевые кадры, настраивая длительность, скорость и Loop Time для непрерывного воспроизведения. Для логотипа будем опускать и поднимать текст. Для изображения «руки» — менять спрайты. Интервал анимации логотипа — примерно 15 миллисекунд.

Управление отображением меню

Чтобы меню не отображалось после первого запуска игры, добавим переменную firstClick и проверку EventSystem.current.IsPointerOverGameObject() в функцию Update. Если EventSystem.current.IsPointerOverGameObject() возвращает true, код запуска игры не выполняется. При первом клике (firstClick == false) скрываем все элементы меню.

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

Что будем искать? Например,программа