unity3d 如何仅在Unity编辑器启动时运行脚本?

t98cgbkg  于 2023-03-03  发布在  其他
关注(0)|答案(1)|浏览(318)

我正在为Unity编辑器编写我自己的autosave脚本,我希望它在编辑器启动时运行其setup方法。我尝试过使用InitializeOnLoad,但它不仅在编辑器启动时调用静态构造函数,而且在每次按下Play按钮时都调用,再次初始化我的脚本并重置其所有计时器。
我试过设置一个条件,仅当计时器的值设置为默认值时才初始化脚本,但显然InitializeOnLoad创建了我的脚本的另一个示例,因此所有内容都被重置,该条件毫无用处。
然后我想在启动时在编辑器首选项中创建一个bool,以便在我按下Play时检查脚本之前是否已经启动过,但是我找不到一种方法在编辑器关闭时重置这个值,所以当我再次启动编辑器时,bool仍然为真,自动保存也不会启动。
我还尝试使用ExecuteInEditMode调用OnDestroy方法并将编辑器pref设置为false,但当然只有在场景中有一个脚本示例附加到GameObject时才有效,而编辑器脚本则不是这样。
有解决办法吗?先谢了。

rmbxnbpk

rmbxnbpk1#

在静态构造函数中使用以下代码:

if (!EditorApplication.isPlayingOrWillChangePlaymode) {
    //Do constructor stuff
}

相关问题