ExecuteInEditMode

用于修饰一个类


首先要区别一些概念:

在Unity软件内,无论是不是运行的状态,都是Unity Editor;与之对应的是,打包之后,就不是Unity Editor。在Unity Editor中,非运行状态就是Edit Mode;运行状态就是Play Mode。

默认情况下,我们自己写的脚本都是在进入Play Mode的时候,才会被按照顺序执行(Start → Update…)。ExecuteInEditMode属性的作用就是让脚本在Edit Mode下也可以被执行。

但是即使是加上了这个属性,Edit Mode和Play Mode中函数的执行方式还是有一些不同,在Edit Mode中,调用规则是这样的:

Awake与Start调用规则:

在切换模式的时候,Unity会重新加载资源,这时的运行逻辑是:

需要注意的是,切换模式的时候,进行某些部分的初始化之前,先做好清理工作,自己创建的内存、资源等Unity是不会帮你处理的