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

本文介绍了Unity中的宏定义及其使用,包括如何自定义宏、不同环境条件编译的示例,并对比了`Conditional`和`#if...#endif`的使用场景。了解如何根据平台差异执行特定代码,提升开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 


 

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#---#define条件编译 - 我喜欢大白 - 博客园
C#中宏定义使用“Conditional”和“#if....#endif”的区别_啸风轩-CSDN博客_c# 宏

Unity中的宏定义_画个小圆儿的博客-CSDN博客_unity 使用宏定义



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值