預處理器命令的功能非常強大,在編程過程中的使用也非常廣泛,比如在版本發布中使用非常方便;
1,#define(告訴編譯器存在給定名稱的符號) #undefine(刪除符號)
2,#if
#elif
#else
#endif
#define本身沒有什么作用,一般與其他預處理器指令配合使用(#if)
- 使用#define 告訴編譯器存在給定的符號
- 在VS中添加名稱符號
- 在Unity使用
----使用#define 告訴編譯器存在給定的符號--------------------------------------
#define ANDROID
#define IOS
#define WP
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CShapeB
{
class Test
{
#if ANDROID
#if QD1
#elif QD2
#elif QD3
#endif
#elif IOS
#if QD1
#elif QD2
#elif QD3
#endif
#elif WP
#elif ELSE
#else
#endif
}
}
-----在VS中添加名稱符號--------------------------------------
1,Debug-->配置管理器。

2,Debug--><新建...>。

3,填寫名稱ANDROID_DEBUG,並且完成設置,然后我們就可以在Debug中看到
ANDROID_DEBUG了。


4,配置ANDROID_DEBUG,在條件編譯符號號寫入給定的名稱符號,並保存。

5,使用,我們在Debug方式下的話我們的
ANDROID並沒有啟用,但是我們切換到
ANDROID_DEBUG下的話
ANDROID符號下的代碼就被啟用了。


-----在Unity使用--------------------------------------
BuildSetting ->PlayerSettings ->Scripting Define Symbols

-----
Unity預定義宏
--------------------------------------
平台定義
UNITY_EDITOR | 編輯器調用。 |
UNITY_STANDALONE_OSX | 專門為Mac OS(包括Universal,PPC和Intelarchitectures)平台的定義。 |
UNITY_DASHBOARD_WIDGET | Mac OS Dashboard widget (Mac OS儀表板小部件)。 |
UNITY_STANDALONE_WIN | Windows。 |
UNITY_STANDALONE_LINUX | Linux的獨立的應用程序。 |
UNITY_STANDALONE | 獨立的平台(Mac,Windows或Linux)。 |
UNITY_WEBPLAYER | 網頁播放器(包括Windows和Mac Web播放器可執行文件)。 |
UNITY_WII | Wii游戲機平台。 |
UNITY_IPHONE | iPhone平台。 |
UNITY_ANDROID | Android平台。 |
UNITY_PS3 | PlayStation 3。 |
UNITY_XBOX360 | Xbox 360。 |
UNITY_NACL | 谷歌原生客戶端(使用這個必須另外使用UNITY_WEBPLAYER)。 |
UNITY_FLASH | Adobe Flash。 |
也可以判斷Unity版本,目前支持的版本
UNITY_2_6 | 平台定義為主要版本的Unity 2.6。 |
UNITY_2_6_1 | 平台定義的特定版本1的主要版本2.6。 |
UNITY_3_0 | 平台定義為主要版本的Unity 3.0。 |
UNITY_3_0_0 | 平台定義的特定版本的Unity 3.0 0。 |
UNITY_3_1 | 平台定義為主要版本的Unity 3.1。 |
UNITY_3_2 | 平台定義為主要版本的Unity 3.2。 |
UNITY_3_3 | 平台定義為主要版本的Unity 3.3。 |
UNITY_3_4 | 平台定義為主要版本的Unity 3.4。 |
UNITY_3_5 | 平台定義為主要版本的Unity 3.5。 |
UNITY_4_0 | 平台定義為主要版本的Unity 4.0。 |
UNITY_4_0_1 | 主要版本4.0.1統一的平台定義。 |
UNITY_4_1 | 平台定義為主要版本的Unity 4.1。 |