Учебники

Единство – Кнопка

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

Давайте начнем с кнопки . Чтобы вставить кнопку, щелкните правой кнопкой мыши в иерархии сцен и выберите « Создать» → «Пользовательский интерфейс» → «Кнопка» . Если у вас нет существующего Canvas и EventSystem, Unity автоматически создаст его и поместит кнопку внутри Canvas.

Кнопка Создать пользовательский интерфейс

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

Режим наложения

Если вы играете сцену, вы заметите, что кнопка уже имеет некоторые стандартные функции, такие как обнаружение, когда мышь наведена на нее, и изменение цвета при нажатии.

Кнопка требует функциональности, чтобы быть действительно полезной в пользовательском интерфейсе. Эта функциональность может быть добавлена ​​через его свойства.

Давайте создадим новый скрипт и назовем его ButtonBehaviour .

public class ButtonBehaviour : MonoBehaviour {
   int n;
   public void OnButtonPress(){
      n++;
      Debug.Log("Button clicked " + n + " times.");
   }
}

Мы сделали простой метод, который регистрирует, сколько раз мы нажали кнопку.

Примечание. Этот метод должен быть общедоступным; иначе это не будет замечено функциональностью кнопки.

Давайте создадим пустой GameObject и прикрепим к нему этот скрипт. Мы делаем это, потому что кнопка не будет ничего делать сама по себе; он вызывает только указанный метод в своем сценарии.

пустой GameObject

Теперь перейдите в свойства Button и найдите свойство OnClick () .

Свойство OnClick ()

Нажмите значок + на нижней вкладке, и новая запись должна появиться в списке.

Новая запись

Эта запись определяет, на какой объект действует нажатие кнопки и какая функция скрипта этого объекта вызывается. Из-за системы событий, используемой при нажатии кнопки, вы можете запускать несколько функций, просто добавляя их в список.

Перетащите пустой GameObject, который содержит созданный нами скрипт ButtonManager , в слот None (Object) .

Слот для объекта

Перейдите в раскрывающийся список « Нет функции» и найдите наш метод OnButtonPress . (Помните, что он может быть назван как угодно, OnButtonPress – это просто стандартное соглашение об именах.) Вы должны найти его в разделе ButtonBehaviour .

Если вы играете в игру сейчас, вы можете проверить кнопку и, конечно же, консоль распечатает, сколько раз вы нажали кнопку.