【发布时间】:2017-12-07 20:26:38
【问题描述】:
我正在为 Unity 编辑器编写自己的自动保存脚本,我希望它在启动编辑器时运行其设置方法。我试过使用 InitializeOnLoad,但它不仅在编辑器启动时调用静态构造函数,而且每次按下播放按钮时都会调用静态构造函数,再次初始化我的脚本并重置其所有计时器。
我尝试设置一个条件来仅在计时器的值设置为默认值时初始化脚本,但显然 InitializeOnLoad 创建了我的脚本的另一个实例,因此一切都被重置并且条件无用。
然后我考虑在启动时在编辑器首选项中创建一个 bool 来检查,当我按下播放时,脚本是否已经启动过。但是当编辑器关闭时我找不到重置这个值的方法,所以当我再次启动编辑器时,布尔值仍然为真,自动保存没有开始。
我也尝试使用 ExecuteInEditMode 来调用 OnDestroy 方法并将编辑器首选项设置为 false,但当然它仅在场景中附加到游戏对象的脚本实例时才有效,编辑器不是这种情况脚本。
有解决办法吗? 提前致谢。
【问题讨论】:
标签: c# unity3d unityscript unity-editor