Unity3D判斷當前平臺

官方文檔:http://docs.unity3d.com/Manual/PlatformDependentCompilation.html

文檔上有詳細說明,我在這裏再補充兩點:

如果想判斷多個條件,可以用 || 或 & 來組合

例如:

#if UNITY_IOS || UNITY_ANDROID
...//這裏的代碼在IOS和Android平臺都會編譯
#endif

#if UNITY_ANDROID && UNITY_EDITOR
...//這裏的代碼只有在發佈設置設置的是Android,且在編輯器裏運行時纔會編譯
#endif

還有一個我之前一直疑惑的誤區:

一直以爲這些平臺判斷只是真正在該平臺上纔會起作用,後來實踐說明,只要在發佈設置裏切換到了該平臺,就會起作用。其實這就是“在編譯階段起作用”的意義,是我之前對它理解不夠深入。

例子說話:

#if UNITY_WEBPLAYER
//只要發佈設置裏切換到了WebPlayer平臺,這裏的代碼就會被編譯
#endif

#if UNITY_EDITOR
//當然,如果是在編輯器裏測試,無論發佈設置裏是怎麼設置的,這裏的代碼都會被編譯
#endif

還有運行時判斷平臺的方法

API:http://docs.unity3d.com/ScriptReference/RuntimePlatform.html

上代碼:

if(Application.platform == RuntimePlatform.WindowsWebPlayer)
{
//只有在windows系統的webplayer平臺上纔會執行
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章