C# 宏定义 define 预处理器指令

C# 宏定义 define 预处理器指令
www.zeeklog.com  - C# 宏定义 define 预处理器指令
www.zeeklog.com  - 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指令放在文件顶部。

www.zeeklog.com  - C# 宏定义 define 预处理器指令

2、或者你需要添加在Unity中的PlayerSettings里面的Scripting Define Symbols 下的输入框里面,可以添加多个,之间有";"隔开例如SDK91

宏定义的使用场合:

在程序中我们想要根据不同的运行环境去执行不同的代码时使用。比如我们在PC上和安卓上需要执行不同的代码,我们就可以使用Unity自带的宏定义来区分。

Conditional:对于使用“[Conditional("xxx")]”定义的方法而言,该方法是否被执行取决于该方法的调用方是否满足“xxx”环境,如果满足则会执行该方法,否则不执行

#if...#endif:使用这种方式定义的,在编译时只会把满足条件的代码编译到最终的程序集中,与外部调用方是否满足条件无关