1

就像标题说的那样,我想创建一个自定义的 EditorWindow,它会像 EditorUtility.DisplayDialog 一样阻止 Unity 编辑。我知道如何创建一个 EditorWindow,但我不知道该怎么做,是如何阻止编辑器,直到用户按下我的自定义 EditorWindow 中的按钮或窗口关闭。

如果有人对如何解决这个问题有任何想法,我将非常感谢您的帮助。谢谢。

4

1 回答 1

1

目前 afaik 似乎没有办法用自定义存档EditorWindow


能够可以用于ShowModalUtility此(在 中介绍2019.1)。

只需在您通常会做的行中,例如

yourWindow.Show();

通过使用来替换它

yourWindow.ShowModalUtility();

将 EditorWindow 显示为浮动模式窗口。

实用程序窗口不允许在运行时与编辑器交互。这意味着EditorWindow.ShowModalUtilityUnity 编辑器永远不会隐藏该窗口。但是,它不能停靠给编辑器。

实用程序窗口将始终位于普通 Unity 窗口的前面。当用户从 Unity 切换到另一个应用程序时,它将被隐藏。

EditorWindow.GetWindow注意:在使用此功能显示窗口之前,您不需要使用。


刚刚注意到:通常这应该可以解决问题,但不幸的是,自 Unity 2019.1 处于alpha状态以来似乎仍然存在一个错误......显然直到现在它才修复......

正如您在链接的错误报告中看到的那样,他们说它的优先级太低,并将可能的修复推送到Unity 2019.3.. 目前仍处于alpha状态.. 所以......谁知道这是否以及何时真正修复


有趣的小事实:在链接的示例代码中,Unity 有错误并使用它ShowUtility代替ShowModalUtility

于 2019-07-22T08:37:24.720 回答