Version: 2017.4
创建屏幕过渡
IMGUI 基础知识

即时模式 GUI (IMGUI)

“即时模式”GUI 系统(也称为 IMGUI)是一个完全独立的功能系统,不同于 Unity 基于游戏对象的主 UI 系统。IMGUI 是一个代码驱动的 GUI 系统,主要用作程序员的工具。为了驱动该系统,需在实现脚本上调用 OnGUI 函数。例如,以下代码:

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

将显示如下所示的按钮:

上述代码示例的结果
上述代码示例的结果

即时模式 GUI 系统常用于:

  • 创建游戏内调试显示和工具。
  • 为脚本组件创建自定义检视面板。
  • 创建新的编辑器窗口和工具以扩展 Unity 本身。

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

“立即模式”指的是创建和绘制 IMGUI 的方式。要创建 IMGUI 元素,必须编写进入名为 OnGUI 的特殊函数的代码。显示界面的代码将在每帧执行,并绘制到屏幕上。除了 OnGUI 代码附加到的对象,或者层级视图中与绘制的可视元素相关的其他类型对象之外,没有其他持久性游戏对象。

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

本部分将介绍如何在游戏和 Unity Editor 的扩展中使用 IMGUI。

创建屏幕过渡
IMGUI 基础知识