Unity C#

OnGUI в Unity C# — быстрый UI и обработка событий

Метод OnGUI в Unity рисует пользовательский интерфейс через систему IMGUI (Immediate Mode GUI). Он вызывается каждый кадр и позволяет отрисовывать элементы — кнопки, текстовые поля, слайдеры — прямо из кода. Учти: IMGUI считается устаревшей, и для современных проектов лучше брать UI Toolkit или Canvas.

Особенности

  • Автоматический вызов: срабатывает каждый кадр, пока объект со скриптом активен.
  • Для прототипов: удобен, чтобы быстро накидать интерфейс или отладочные элементы.
  • Ресурсоёмкость: элементы рисуются каждый кадр, поэтому метод менее производительный, чем другие UI-системы.

Пример кода

Скрипт рисует текстовое поле и кнопку:

using UnityEngine;

public class Example : MonoBehaviour
{
    private string text = "Пример текста";

    // Метод OnGUI используется для создания пользовательского интерфейса
    void OnGUI()
    {
        // Создаем текстовое поле
        text = GUI.TextField(new Rect(10, 10, 200, 20), text);

        // Создаем кнопку
        if (GUI.Button(new Rect(10, 40, 100, 30), "Нажми меня"))
        {
            Debug.Log("Кнопка была нажата!");
        }
    }
}

OnGUI больше для отладки и внутренних инструментов — для современных интерфейсов ему не хватает гибкости и производительности.