记一次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的生命周期)。这个脚本的错正是因为这样的使用所致,进而导致这个问题。