
?
?
?
Unity系统原来已经帮你定义好了很多的宏,可以直接用
//如果你的平台已经被你switch platform 你的那个平台过后,对应的输出打印是彩色的会编译,否则是灰色的不会编译
#if UNITY_IPHONE ? ? ? ? Debug.Log("UNITY_IPHONE"); #elif UNITY_ANDROID ? ? ? ? Debug.Log("UNITY_ANDROID"); #elif UNITY_EDITOR ? ? ? ? Debug.Log("UNITY_EDITOR"); #endif
#if UNITY_4_1 ? ? ? ? Debug.Log("UNITY_4"); #elif UNITY_5 ? ? ? ? Debug.Log("UNITY_5"); #endif
?
如何自定义宏:
1、使用?#define?创建的符号的作用域是在其中定义该符号的文件。如以下示例所示,必须将?#define?指令放在文件顶部。
?
?2、或者你需要添加在Unity中的PlayerSettings里面的Scripting Define Symbols 下的输入框里面,可以添加多个,之间有";"隔开例如SDK91
宏定义的使用场合:
? ?在程序中我们想要根据不同的运行环境去执行不同的代码时使用。比如我们在PC上和安卓上需要执行不同的代码,我们就可以使用Unity自带的宏定义来区分。
Conditional:对于使用“[Conditional("xxx")]”定义的方法而言,该方法是否被执行取决于该方法的调用方是否满足“xxx”环境,如果满足则会执行该方法,否则不执行
#if...#endif:使用这种方式定义的,在编译时只会把满足条件的代码编译到最终的程序集中,与外部调用方是否满足条件无关
? C#中宏定义使用“Conditional”和“#if....#endif”的区别_啸风轩-CSDN博客_c# 宏
Unity中的宏定义_画个小圆儿的博客-CSDN博客_unity 使用宏定义
?
|