1

我正在为 Unity 编辑器编写自己的自动保存脚本,我希望它在启动编辑器时运行其设置方法。我尝试使用 InitializeOnLoad,但它不仅在编辑器启动时调用静态构造函数,而且在每次按下播放按钮时调用静态构造函数,再次初始化我的脚本并重置其所有计时器。

我试图设置一个条件来初始化脚本,只有当定时器的值设置为默认值时,但显然 InitializeOnLoad 创建了我的脚本的另一个实例,所以一切都被重置并且条件是无用的。

然后我想在启动时在编辑器首选项中创建一个 bool 来检查,当我按下播放时,脚本是否已经启动过。但是当编辑器关闭时我找不到重置这个值的方法,所以当我再次启动编辑器时,布尔值仍然为真并且自动保存没有开始。

我还尝试使用 ExecuteInEditMode 来调用 OnDestroy 方法并将编辑器首选项设置为 false,但当然它仅在场景中的 GameObject 附加了脚本实例时才有效,而编辑器脚本并非如此。

有解决方案吗?提前致谢。

4

1 回答 1

3

在静态构造函数中使用它:

if (!EditorApplication.isPlayingOrWillChangePlaymode) {
    //Do constructor stuff
}
于 2017-07-04T11:52:06.663 回答