Unity 预编译相关宏定义 (如:UNITY_EDITOR)-Unity3D判断所在平台

简介

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

Unity 宏定义查找
Unity 预编译相关宏定义

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章