首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何只在Unity编辑器启动时运行脚本?

如何只在Unity编辑器启动时运行脚本?
EN

Stack Overflow用户
提问于 2017-07-04 19:25:09
回答 1查看 2.4K关注 0票数 1

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

我尝试在定时器将其值设置为默认值的情况下设置一个条件来初始化脚本,但显然InitializeOnLoad创建了我的脚本的另一个实例,因此所有内容都被重置,并且该条件是无用的。

然后,我考虑在启动时在编辑器首选项中创建一个bool,以检查当我按下Play时,脚本是否已经启动。但是当编辑器关闭时,我找不到重置这个值的方法,所以当我再次启动编辑器时,bool仍然是真的,并且autosave不会启动。

我还尝试使用ExecuteInEditMode调用OnDestroy方法并将编辑器首选项设置为false,但当然只有在场景中有脚本实例附加到GameObject时才有效,而编辑器脚本不是这种情况。

有解决这个问题的方法吗?提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-04 19:52:07

在你的静态构造函数中使用这个:

代码语言:javascript
运行
复制
if (!EditorApplication.isPlayingOrWillChangePlaymode) {
    //Do constructor stuff
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44904704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档