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 больше для отладки и внутренних инструментов — для современных интерфейсов ему не хватает гибкости и производительности.