Найти тему
разработка на юнити

Создание функционала кнопок в меню

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

После того, как мы создали меню (как создать меню можно посмотреть в предыдущей статье (https://dzen.ru/a/ZiF8rqwCGhePeWXy?share_to=link), нужно создать кнопки. Для этого в окне Hierarchy правой кнопкой мыши нажимаем на ранее созданный Canvas далее UI - Image. Подгоняем его по размерам и выставляем на нужное место, можно добавить текстуру. Будем создавать три кнопки: играть, настройки и выход.

-2

После того как создали три Image и разместили их в своё законное место, нужно придать им свойство кнопок. Для этого в окне Hierarchy выбираем первый Image. В окне Inspector нажимаем на Add Component и в строке пишем Button. Повторяем так с каждой заготовленной кнопкой.

-3

-4

Дальше нам нужно написать скрипты и накладывание их на кнопки.

Написание скриптов.

В нижней окне нажимаем правой кнопкой мыши по пустому полю. И в открывшейся вкладке выбираем Create - C# Script. Открываем, удаляем там всё и пишем:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class NewBehaviourScript : MonoBehaviour
{
public void LoadLevel()
{
SceneManager.LoadScene("Level1");// в кавычках название сцены на которую осуществляется переход
}

public void ExitGame()
{
Application.Quit();
}
}

Переносим скрипт на Canvas. Скрипт написан, теперь нужно заставить кнопки работать.

Настройка действий кнопок.

Начнём с кнопки играть. Нажимаем но неё и в окне Inspector во вкладке On Click нажимаем ' + '. В свободное поле перетаскиваем Canvas из окна Hierarchy. В строке No Function выбираем NewBehaviourScript - LoadLevel.

-5

Чтобы переход на другую сцену сработал, нужно в самой верхней строке нажать на File - Build Settings. В открывшемся окне мы увидим поле Scents in Build. Сюда мы должны добавить наши сцены - это меню, и обязательно следующая сцена должна быть та, на которую делаем переход.

Следующая кнопка будет выход. Всё также в окне Inspector переносим Canvas со скриптом в поле On Click. Затем в строке No Function выбираем NewBehaviourScript - ExitGame.

И наконец кнопка настроек. Она отличается от остальных кнопок, ведь она должна открывать отдельное окно, в котором уже и будет все настройки.

В Canvas создаём Image, назовём Image2, растягиваем его, и в Inspector убираем галочку. В Hierarchy выбираем кнопку настроек и в окне Inspector добавляем два поля On Click. В первое поле перетаскиваем Image1, который мы создали в самом начале и на котором находятся все кнопки. В No Function выбираем GameObject - SetActive(bool), а во втором поле перетаскиваем Image, который мы делали для второго окна. В No Function выбираем GameObject - SetActive(bool) и чуть ниже ставим галочку.

-6

Дальше открываем Image2 и создаём кнопку назад - всё так же, как и остальные кнопки. И для того, что бы она возвращала назад, добавляем два поля On Click. В первое пустое поле перетаскиваем Image2. В No Function выбираем GameObject - SetActive(bool). Во второе поле переносим Image1. В No Function выбираем GameObject - SetActive(bool). Ниже ставим галочку.