Unity3D:多个实用程序/显示模型实用程序窗口

baubqpgj  于 2022-12-19  发布在  其他
关注(0)|答案(1)|浏览(275)

因此,我正在创建一个编辑器工具,此工具通过单击自定义MenuItem打开。此工具使用GetWindow<T>(true, "title")ShowModalUtility()方法作为实用程序窗口打开。此新实用程序窗口具有按钮,可使用上述相同方法打开另一个实用程序窗口(不同的编辑器窗口类型)。
我不知道这是一个bug还是故意的,但似乎打开多个工具窗口不能正常工作。当第二个工具窗口打开时(按下第一个窗口中的按钮),Unity编辑器的其余部分仍然像它应该的那样被阻塞,但第二个工具窗口没有阻塞第一个窗口。
它看起来好像是一个实用程序窗口是一个“静态”的事情,所有的实用程序窗口都有相同的优先级,所以你可以在任何时候点击它们中的任何一个。
有人知道如何使用一个实用程序编辑器窗口来阻止另一个实用程序编辑器窗口吗?
我看到了this的帖子,就像我提到的,我正在使用ShowModalUtility(),但是当我打开两个实用程序窗口时,它对我来说不能正常工作。

wbgh16ku

wbgh16ku1#

你能提供一个最低复制码吗?那么我也许能帮上忙。
下面是我的测试代码:

using UnityEditor;
using UnityEngine;

// TestWindow1.cs
public class TestWindow1 : EditorWindow
{
    [MenuItem("Test/Window1")]
    static void ShowWindow()
    {
        var window = GetWindow<TestWindow1>();
        window.ShowModalUtility();
    }

    void OnGUI()
    {
        if (GUILayout.Button("Open Window2"))
        {
            var window = GetWindow<TestWindow2>();
            window.ShowModalUtility();
        }
    }
}

// TestWindow2.cs
public class TestWindow2 : EditorWindow
{
    void OnGUI()
    {
        if (GUILayout.Button("Open Window3"))
        {
            var window = GetWindow<TestWindow3>();
            window.ShowModalUtility();
        }
    }
}

// TestWindow3.cs
public class TestWindow3 : EditorWindow {}

相关问题