Я хотел бы иметь кнопку пользовательского интерфейса и после нажатия на нее запустить функцию, как это возможно?

#unity3d #user-interface #button #input #script

Вопрос:

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

Возможно ли это? Это код, используемый для ключевых слов:

 void Update()
{
  if (Input.GetKeyDown(KeyCode.Backslash))
  {
 
    if (!isScanning) 
    {
      pluxDevManager.GetDetectableDevicesUnity(domains);
      isScanning = true;
  }
}
 

Комментарии:

1. docs.unity3d.com/2019.1/Documentation/ScriptReference/…

2. Я только что скорректировал код, используя ваше предложение, но оно не работает

Ответ №1:

Сначала вам понадобится игровой объект с вашим собственным сценарием (назовем его DeviceScanner) в иерархии, этот сценарий должен иметь открытый метод, такой как public void OnGetDetectableDevicesClick() {} с вашим кодом внутри. Щелкните правой кнопкой мыши на вашей иерархии и добавьте кнопку «Пользовательский интерфейс» ->». Он также должен разместить родительский объект Canvas для вас. Если вы нажмете на кнопку в иерархии и прокрутите вниз в окне инспектора, вы увидите «События», и вы можете нажать (плюс), чтобы добавить событие при нажатии. Перетащите свой игровой объект, добавленный с помощью пользовательского сценария, из иерархии в первое пустое место в событии При нажатии. Как только вы перетащите его туда, выпадающий список рядом с ним обновится и будет содержать множество вещей — вы хотите найти тот, который имеет то же имя, что и ваш скрипт, который вы добавили, например DeviceScanner, а затем выберите свой метод OnGetDetectableDevicesClick.

Это основной способ, чтобы кнопка вызывала метод в одном из ваших сценариев. Помните, что не следует перетаскивать сценарий из списка проектов, вам нужно перетащить его из иерархии в вашей сцене, иначе он не вызовет ваш метод.

Холст по умолчанию будет использовать режим наложения, поэтому он должен появиться, когда вы нажмете «Воспроизвести». Есть и другие режимы, которые вы можете установить для холста, и есть способ заставить его отображаться в 3D-пространстве, а не быть плоским 2D-наложением на экране, но с этого проще всего начать и расположить кнопки там, где вы хотите, чтобы они были. Размер кнопки по умолчанию очень мал, и я считаю, что позиция по умолчанию находится в центре экрана.

Самый простой способ настроить кнопку и добавить пользовательский интерфейс-это изменить вид на 2D-режим. Прямо над вкладкой Просмотр сцены есть маленькая кнопка «2D», которая переключает режим 2D для редактирования сцены. Как только вы включите 2D-режим, вид изменится, чтобы правильно отображать кнопку, и это лучший режим для работы с вашим пользовательским интерфейсом. Вы отключаете 2D-режим, чтобы вернуться к работе с 3D-сценой.