我正在为Unity编辑器编写自己的自动保存脚本,我希望它在编辑器启动时运行其设置方法。我尝试过使用InitializeOnLoad,但它不仅在编辑器启动时调用静态构造函数,而且每次按下“播放”按钮时都会调用静态构造函数,再次初始化我的脚本并重置其所有计时器。
我试图设置一个条件来初始化脚本只有当定时器的值设置为默认值时,但显然InitializeOnLoad创建了我的脚本的另一个实例,所以一切都被重置,条件没用。
然后我考虑在启动时在编辑器首选项中创建一个bool来检查,当我按下Play时,如果之前已经启动了脚本。但是当编辑器关闭时,我找不到重置此值的方法,所以当我再次启动编辑器时,bool仍然为真,并且自动保存没有启动。
我还尝试使用ExecuteInEditMode来调用OnDestroy方法并将编辑器pref设置为false,但当然只有当脚本的实例附加到场景中的GameObject时才会起作用,而编辑器则不然。脚本。
那里有解决方案吗? 提前谢谢。
答案 0 :(得分:3)
在静态构造函数中使用它:
if (!EditorApplication.isPlayingOrWillChangePlaymode) {
//Do constructor stuff
}