C# 宏定义 define 预处理器指令
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:使用这种方式定义的,在编译时只会把满足条件的代码编译到最终的程序集中,与外部调用方是否满足条件无关