EditorWindow.GetWindow不起作用

时间:2014-04-26 04:33:06

标签: c# unity3d

这是我的代码:

public class CrazyWindow: EditorWindow 
{
    [MenuItem("Window/CrazyWindow")]
    public static void Window()
    {
        EditorWindow.GetWindow(typeof(CrazyWindow));

        Debug.Log("It should have appeared!");
    }

    string test = "";
    public void OnGUI()
    {
        test = EditorGUILayout.TextField ("Text Field", test );
    }
}

我在Windows 7上使用Unity3D v.4.3.4f1(免费版)。 我不知道为什么会发生这种情况,正如我在互联网上的教程中所看到的那样,它应该如何完成。该脚本也位于Editor文件夹中。

我可以点击选项" CrazyWindow"在窗口菜单中,我也收到Debug消息,通知我窗口应该正常工作,但除此之外没有任何反应。根本没有创建窗口!

可能是我的问题的原因是什么?

3 个答案:

答案 0 :(得分:1)

尝试重命名MenuItem中的'CrazyWindow'部分以及类本身。 Unity会记住窗口是否可见,并且某些地方出现了问题。可能它认为你的窗口是可见的(在缓存中),而实际上它不是。

答案 1 :(得分:1)

问题解决了。

正如巴特所说,我使用的是自定义编辑器布局,就是窗口没有显示的情况。

我刚刚切换到其中一个工厂编辑器布局:ta dah,窗口就在那里......

漂亮的马车想法。

答案 2 :(得分:0)

正如 Bart 所说,它会记住无用的东西
让它记住我们想要它做什么

private void OnLostFocus() {
    GetWindow<CrazyWindow>().Close();
}