简介
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