Unity 6.3
0 онлайн 111 гостей 3 в системе
Вход
UI системы Шаг 305 из 317

Введение в IMGUI (Немедленный режим GUI)

IMGUI (Немедленный режим GUI) является полностью независимой функцией от основной системы Unity, основанной на GameObject, UI. IMGUI — это система GUI, управляемая кодом, и в основном предназначена как инструмент для программистов. Она управляется вызовами функции OnGUI в любом скрипте, который реализует ее. Например, этот код:

    void OnGUI() {
        if (GUILayout.Button("Press Me")){ 
            Debug.Log("Hello!");
        }
    }

Это приведет к появлению кнопки, отображаемой следующим образом:

Результат вышеприведенного примера кода
Результат вышеприведенного примера кода

IMGUI часто используется для:

  • Создание в игре отладки дисплеев и инструментов.
  • Создание настраиваемых инспекторов для компонентов скриптов.
  • Создание новых окон редактора и инструментов для расширения самого Unity.

IMGUI обычно не предназначен для использования в обычных игровых пользовательских интерфейсах, которые игроки могут использовать и взаимодействовать с ними. Для этого вы должны использовать основную систему Unity, основанную на GameObject UI, которая предлагает основанный на GameObject подход к редактированию и позиционированию UI элементов, и имеет гораздо лучшие инструменты для работы с визуальным дизайном и макетом UI.

«Immediate Mode» («непосредственный режим») описывает то, как IMGUI создаётся и отрисовывается. Чтобы создать элементы IMGUI, нужно написать код в специальной функции OnGUI. Код, отображающий интерфейс, выполняется каждый кадр и рисуется на экране. Никаких постоянных игровых объектов, кроме того, к которому прикреплён ваш код OnGUI, и никаких других объектов иерархии, связанных с отрисовываемыми визуальными элементами, не существует.

IMGUI позволяет создавать широкий спектр функциональных GUIs с помощью кода. Вместо создания GameObjects, вручную размещая их, а затем написать скрипт, который управляет их функциональностью, вы можете сделать все сразу всего несколькими строками кода. Код производит GUI контроллеры, которые рисуются и управляются с помощью одного вызова функции.

В этом разделе объясняется, как использовать IMGUI как в вашей игре, так и в расширениях редактора Unity.