版本:Unity 6 (6000.0)
语言:英语
Unity UI
IMGUI 基础

即时模式 GUI (IMGUI)

“即时模式”GUI 系统(也称为 IMGUI)是 Unity 的主要基于游戏对象的UI(用户界面) 允许用户与您的应用程序交互。Unity 目前支持三种 UI 系统。 更多信息
参见 术语表
系统完全独立的功能。IMGUI 是一个代码驱动的 GUI 系统,主要用作程序员的工具。它由对实现它的任何脚本上的 OnGUI 函数的调用驱动。例如,这段代码

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

将导致显示一个像这样的按钮

The result of the above code example
上面代码示例的结果

即时模式 GUI 系统通常用于

  • 创建游戏内调试显示和工具。
  • 为脚本组件创建自定义检查器一个 Unity 窗口,显示当前选定游戏对象、资源或项目设置的信息,允许您检查和编辑值。 更多信息
    参见 术语表
  • 创建新的编辑器窗口和工具来扩展 Unity 本身。

IMGUI 系统通常不适用于玩家可能使用和交互的普通游戏内用户界面。为此,您应该使用 Unity 的主要基于游戏对象的UI 系统,该系统提供了一种基于游戏对象的方法来编辑和定位 UI 元素,并且具有更好的工具来处理 UI 的视觉设计和布局。

“即时模式”指的是创建和绘制 IMGUI 的方式。要创建 IMGUI 元素,您必须编写进入名为 OnGUI 的特殊函数的代码。显示界面的代码在每一帧都执行并绘制到屏幕上。除了附加 OnGUI 代码的对象或与视觉元素视觉树的节点,实例化或从 C# VisualElement 类派生。您可以设置外观,定义行为,并在屏幕上显示它作为 UI 的一部分。 更多信息
参见 术语表
绘制相关的层次结构中的其他类型对象之外,没有持久游戏对象Unity 场景中的基本对象,可以表示角色、道具、场景、相机、路点等等。游戏对象的功能由附加到它的组件定义。 更多信息
参见 术语表

IMGUI 允许您使用代码创建各种功能性 GUI。您无需创建游戏对象,手动定位它们,然后编写处理其功能的脚本,而只需使用几行代码即可完成所有操作。代码生成GUI 控件,这些控件通过单个函数调用绘制和处理。

本节说明如何在您的游戏中以及在 Unity 编辑器的扩展中使用 IMGUI。

Unity UI
IMGUI 基础