记一次EditorWindow无法打开的问题

2019-12-11  本文已影响0人  Francis_Rose

Unity在Editor下可以编辑窗口,显示代码如下:

public class ToolWindow : EditorWindow 
{
    [MenuItem("Tool/Developer/DoWork")]
    static void InitWindow()
    {
        var window = EditorWindow.GetWindowWithRect<ToolWindow>(new Rect(150f, 100f, 800f, 600f));       
        window.autoRepaintOnSceneChange = false;
        window.Show(); 
    }
}

但是在一次代码修改后偶然发现该窗口无法再次打开,查了一下原因,应该是已经打开了,但是确实又没看到,后来发现左上角有个很小的东西。


image.png

目测应该是这里了,但是仍不知所云,重启Unity甚至重启电脑都没有用。后来查到一个可能是改动的代码有错导致显示出错之后,这样手动无法关闭,造成这个窗口一直是开着的,所以无论怎样,都无法打开。

一个处理的办法是将脚本删除,重新导入之后,就发现可以正常打开了。这里应该是Unity的一个坑,所以在发现脚本编译或者执行错误时,能不打开就先不打开,先处理掉错误之后,再打开,或者重新导入一次脚本。

注:EditorWindow是继承ScriptableObject,不能直接使用Application.DataPath在初始化路径变量,需要在OnEnable函数中使用Application.DataPath来初始化路径(参考官网中EditorWindow的生命周期)。这个脚本的错正是因为这样的使用所致,进而导致这个问题。

上一篇下一篇

猜你喜欢

热点阅读