簡介
Unity包含一個稱爲Platform Dependent Compilation的功能。這包含一些預處理器指令,可讓您對腳本進行分區,以便爲受支持的平臺之一專門編譯和執行一段代碼。
你可以在Unity編輯器中運行這個代碼,這樣你就可以專門爲你的目標平臺編譯代碼並在編輯器中測試它!
平臺#define指令
Unity支持腳本的平臺#define指令如下:
屬性: | 功能: |
---|---|
UNITY_EDITOR | #define指令,用於從遊戲代碼中調用Unity編輯器腳本。 |
UNITY_EDITOR_WIN | Windows上的編輯器代碼的#define指令。 |
UNITY_EDITOR_OSX | #define指令,用於Mac OS X上的編輯器代碼。 |
UNITY_STANDALONE_OSX | #define指令,用於專門針對Mac OS X(包括Universal,PPC和Intel體系結構)編譯/執行代碼。 |
UNITY_STANDALONE_WIN | #define指令,用於專門爲Windows獨立應用程序編譯/執行代碼。 |
UNITY_STANDALONE_LINUX | #define指令,用於專門爲Linux獨立應用程序編譯/執行代碼。 |
UNITY_STANDALONE | #define指令,用於爲任何獨立平臺(Mac OS X,Windows或Linux)編譯/執行代碼。 |
UNITY_WII | #define指令,用於爲Wii控制檯編譯/執行代碼。 |
UNITY_IOS | #define指令,用於爲iOS平臺編譯/執行代碼。 |
UNITY_IPHONE | 不推薦使用。請改用UNITY_IOS。 |
UNITY_ANDROID | 適用於Android平臺的#define指令。 |
UNITY_PS4 | #define運行指令 的PlayStation 4碼。 |
UNITY_XBOXONE | #define指令執行 Xbox One碼。 |
UNITY_TIZEN | Tizen平臺的#define指令。 |
UNITY_TVOS | 適用於Apple TV平臺的#define指令。 |
UNITY_WSA |
#define指令用於 通用Windows平臺。 此外,當針對.NET Core和使用.NET編譯C#文件時,將定義NETFX_CORE。腳本後端。 |
UNITY_WSA_10_0 | 適用於通用Windows平臺的#define指令。此外,針對.NET Core編譯C#文件時,還定義WINDOWS_UWP。 |
UNITY_WINRT | 與UNITY_WSA相同。 |
UNITY_WINRT_10_0 | 相當於UNITY_WSA_10_0 |
UNITY_WEBGL | #define指令用於 WebGL。 |
UNITY_FACEBOOK | 適用於Facebook平臺(WebGL或Windows獨立)的#define指令。 |
UNITY_ADS | #define指令,用於從遊戲代碼中調用Unity Ads方法。5.2及更高版本。 |
UNITY_ANALYTICS | #define指令,用於調用Unity 分析工具 遊戲代碼中的方法。5.2及更高版本。 |
UNITY_ASSERTIONS | #define指令用於斷言控制過程。 |
測試用例
JS測試代碼如下:
// JS
function Awake() {
#if UNITY_EDITOR
Debug.Log(" --- Unity Editor");
#endif
#if UNITY_IPHONE
Debug.Log(" --- Iphone");
#endif
#if UNITY_STANDALONE_OSX
Debug.Log(" --- Stand Alone OSX");
#endif
#if UNITY_STANDALONE_WIN
Debug.Log(" --- Stand Alone Windows");
#endif
}
C#測測試代碼如下:
// C#
using UnityEngine;
using System.Collections;
public class PlatformDefines : MonoBehaviour {
void Start () {
#if UNITY_EDITOR
Debug.Log(" --- Unity Editor");
#endif
#if UNITY_IOS
Debug.Log(" --- Iphone");
#endif
#if UNITY_STANDALONE_OSX
Debug.Log(" --- Stand Alone OSX");
#endif
#if UNITY_STANDALONE_WIN
Debug.Log(" --- Stand Alone Windows");
#endif
}
}
官網的文檔鏈接和截圖
https://docs.unity3d.com/2019.1/Documentation/Manual/PlatformDependentCompilation.html