public class A1 : MonoBehaviour { void Start() { Func(); } [System.Diagnostics.Conditional("UNITY_EDITOR")] void Func() { GameObject.CreatePrimitive(PrimitiveType.Cube); } }
标记了Conditional特性的函数,相当于#if ....预编译指令
比如上述代码可以达到只在编辑器下可用的效果,为了测试编译,打包了一下
结果编辑器下有创建Cube,打包后的exe没有。也没有函数丢失报错,可见是对函数体内部内容进行了屏蔽
但使用要求比较苛刻,函数本身不能有返回值,且不能是重写方法等。