通过抛出一个 ExitGUIException,将 GUI 设置为一种状态,从而防止在 GUI 循环的剩余部分中评估所有后续的立即模式 GUI 函数。
在 Unity 的立即模式 GUI 系统中,GUI 循环通过在 Event 序列期间调用 GUI 方法来进行,并且这些方法根据 Event.type 执行操作。例如,当使用 GUILayout 时,控件将首先接收 EventType.Layout 事件以确定它们需要多少空间,然后稍后接收 EventType.Repaint 事件以实际绘制到为其分配的空间中。
在此序列中,预期控件 ID 在 GUI 循环期间处理的每个 Event 中都按相同的顺序请求和使用,并且事件循环不会重新进入自身。在可能违反这些假设的情况下使用 GUIUtility.ExitGUI,例如当某些值的更改可能改变接下来显示的控件时。使用此方法可以防止错误,例如 ArgumentException: Getting control 0's position in a group with only 0 controls when doing Repaint
。
其他资源:GetControlID。