最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Unity-平臺(tái)相關(guān)的編譯

2021-01-08 09:44 作者:unity_某某師_高錦錦  | 我要投稿

Unity 包括名為__平臺(tái)相關(guān)的編譯 (Platform Dependent Compilation)__ 的功能。此功能包括一些預(yù)處理器指令,可讓您對(duì)腳本進(jìn)行分區(qū),從而為受支持平臺(tái)之一專門編譯和執(zhí)行一段代碼。

您可以在 Unity Editor 中運(yùn)行此代碼,這樣便可專門為目標(biāo)平臺(tái)編譯代碼并在 Editor 中對(duì)其進(jìn)行測(cè)試!

平臺(tái) #define 指令

Unity 支持對(duì)腳本使用的平臺(tái) #define 指令如下:

屬性:????????????????????????????????????????????????????????????????功能:

UNITY_EDITOR?????????????????????????用于從游戲代碼中調(diào)用 Unity Editor 腳本的 #define 指令。UNITY_EDITOR_WIN????????????????用于 Windows 上的 Editor 代碼的 #define 指令。UNITY_EDITOR_OSX???????????????用于 Mac OS X 上的 Editor 代碼的 #define 指令。UNITY_STANDALONE_OSX????用于專門為 Mac OS X(包括 Universal、PPC 和 Intel 架構(gòu))編譯/執(zhí)行代碼的 #define 指令。

UNITY_STANDALONE_WIN????用于專門為 Windows 獨(dú)立平臺(tái)應(yīng)用程序編譯/執(zhí)行代碼的 #define 指令。

UNITY_STANDALONE_LINUX?用于專門為 Linux 獨(dú)立平臺(tái)應(yīng)用程序編譯/執(zhí)行代碼的 #define 指令。

UNITY_STANDALONE?????????????用于為任何獨(dú)立平臺(tái)(Mac OS X、Windows 或 Linux)編譯/執(zhí)行代碼的 #define 指令。

UNITY_WII????????????????????????????????用于為 Wii 游戲主機(jī)編譯/執(zhí)行代碼的 #define 指令。UNITY_IOS???????????????????????????????用于為 iOS 平臺(tái)編譯/執(zhí)行代碼的 #define 指令。UNITY_IPHONE???????????????????????已棄用。改用?UNITY_IOS。

UNITY_ANDROID????????????????????用于 Android 平臺(tái)的 #define 指令。

UNITY_PS4??????????????????????????????用于運(yùn)行 PlayStation 4 代碼的 #define 指令。

UNITY_XBOXONE????????????????? ?用于執(zhí)行 Xbox One 代碼的 #define 指令。

UNITY_TIZEN??????????????????????????用于 Tizen 平臺(tái)的 #define 指令。

UNITY_TVOS????????????????????????? ?用于 Apple TV 平臺(tái)的 #define 指令。

UNITY_WSA????????????????????????????用于通用 Windows 平臺(tái)的 #define 指令。此外,根據(jù) .NET Core 和使用 .NET 腳本后端來編譯 C# 文件時(shí)會(huì)定義?NETFX_CORE

UNITY_WSA_10_0??????????????????用于通用 Windows 平臺(tái)的 #define 指令。此外,根據(jù) .NET Core 來編譯 C# 文件時(shí)會(huì)定義?WINDOWS_UWP。UNITY_WINRT與?UNITY_WSA?相同。UNITY_WINRT_10_0????????????? ?等效于?UNITY_WSA_10_0UNITY_WEBGL用于 WebGL 的 #define 指令。

UNITY_FACEBOOK?????????????????用于 Facebook 平臺(tái)(WebGL 或 Windows 獨(dú)立平臺(tái))的 #define 指令。

UNITY_ADS??????????????????????????????用于從游戲代碼中調(diào)用 Unity Ads 方法的 #define 指令。5.2 及更高版本。

UNITY_ANALYTICS?????????????????用于從游戲代碼中調(diào)用 Unity Analytics 方法的 #define 指令。5.2 及更高版本。

UNITY_ASSERTIONS??????????????用于斷言控制過程的 #define 指令。

從 Unity 2.6.0 開始,可有選擇地編譯代碼??捎眠x項(xiàng)取決于所使用的 Editor 版本。 如果版本號(hào)為?X.Y.Z__(例如,2.6.0),Unity 將使用以下格式公開三個(gè)全局 #define 指令:__UNITY_XUNITY_X_Y?和?UNITY_X_Y_Z。

以下是 Unity 5.0.1 中公開的 #define 指令的示例:

UNITY_5????????????????????用于 Unity 5 發(fā)行版的 #define 指令,在每個(gè) 5.X.Y 版本中公開。

UNITY_5_0????????????????用于 Unity 5.0 主要版本的 #define 指令,在每個(gè) 5.0.Z 版本中公開。

UNITY_5_0_1????????????用于 Unity 5.0.1 次要版本的 #define 指令。

從 Unity 5.3.4 開始,可根據(jù)編譯或執(zhí)行給定代碼部分所需的最早 Unity 版本來有選擇地編譯代碼。如果采用與上面相同的版本格式 (X.Y.Z),Unity 將以?UNITY_X_Y_OR_NEWER?格式公開一個(gè)可用于此目的的全局 #define。

支持的 #define 指令為:

CSHARP_7_3_OR_NEWER????????????????在構(gòu)建支持 C# 7.3 或更高版本的腳本時(shí)定義。

ENABLE_MONO??????????????????????????????????用于 Mono 的腳本后端 #define。

ENABLE_IL2CPP????????????????????????????????用于 IL2CPP 的腳本后端 #define。

ENABLE_DOTNET?????????????????????????????用于 .NET 的腳本后端 #define。

NETFX_CORE?????????????????????????????????????在 .NET 上根據(jù) .NET Core 類庫構(gòu)建腳本時(shí)定義。

NET_2_0??????????????????????????????????????????????在 Mono 和 IL2CPP 上根據(jù) .NET 2.0 API 兼容性級(jí)別構(gòu)建腳本時(shí)定義。

NET_2_0_SUBSET?????????????????????????????在 Mono 和 IL2CPP 上根據(jù) .NET 2.0 Subset API 兼容性級(jí)別構(gòu)建腳本時(shí)定義。

NET_LEGACY????????????????????????????????????在 Mono 和 IL2CPP 上根據(jù) .NET 2.0 或 .NET 2.0 Subset API 兼容性級(jí)別構(gòu)建腳本時(shí)定義。

NET_4_6?????????????????????????????????????????????在 Mono 和 IL2CPP 上根據(jù) .NET 4.x API 兼容性級(jí)別構(gòu)建腳本時(shí)定義。

NET_STANDARD_2_0???????????????????????在 Mono 和 IL2CPP 上根據(jù) .NET 標(biāo)準(zhǔn) 2.0 API 兼容性級(jí)別構(gòu)建腳本時(shí)定義。

ENABLE_WINMD_SUPPORT????????? ?在 IL2CPP 和 .NET 上啟用 Windows 運(yùn)行時(shí)支持時(shí)定義。有關(guān)更多詳細(xì)信息,請(qǐng)參閱?Windows 運(yùn)行時(shí)支持。

可使用 DEVELOPMENT_BUILD #define 來確定腳本是否正在啟用了“Development Build”選項(xiàng)的情況下構(gòu)建的播放器中運(yùn)行。

還可根據(jù)腳本后端有選擇地編譯代碼。

測(cè)試預(yù)編譯的代碼

下面是如何使用預(yù)編譯代碼的示例。該示例根據(jù)為目標(biāo)構(gòu)建選擇的平臺(tái)打印一條消息。

首先,通過?File > Build Settings?選擇要測(cè)試代碼的平臺(tái)。隨后將顯示?Build Settings?窗口;從此處選擇目標(biāo)平臺(tái)。

在 Build Settings 窗口中選擇“PC, Mac & Linux”作為目標(biāo)平臺(tái)

選擇要測(cè)試預(yù)編譯代碼的平臺(tái),然后單擊?Switch Platform?向 Unity 告知您所需的目標(biāo)平臺(tái)。

創(chuàng)建腳本并復(fù)制/粘貼以下代碼:

要測(cè)試代碼,請(qǐng)單擊?Play Mode。通過在 Unity 控制臺(tái)中檢查相關(guān)消息來確認(rèn)代碼是否正常工作,具體取決于選擇的平臺(tái);例如,如果選擇 __iOS__,則消息“Iphone”設(shè)置為顯示在控制臺(tái)中。

在 C# 中,可使用?CONDITIONAL?屬性,這是一種更簡(jiǎn)潔、更不容易出錯(cuò)的函數(shù)剝離方式。請(qǐng)參閱?ConditionalAttribute 類以了解更多信息。 請(qǐng)注意,常見的 Unity 回調(diào)(例如:Start()、Update()、LateUpdate()、FixedUpdate()、Awake())不受此屬性的影響,因?yàn)樗鼈兪侵苯訌囊嬲{(diào)用的,并且出于性能原因,此屬性不會(huì)考慮它們。

除了基本的?#if?編譯器指令外,還可在 C# 中使用多路測(cè)試:


平臺(tái)自定義 #define 指令

您也可以向內(nèi)置的 #define 指令集合中添加您自己的指令。打開?Player Settings?的?Other Settings?面板,并導(dǎo)航到?Scripting Define Symbols?文本框。


輸入要為該特定平臺(tái)定義的符號(hào)名稱,以分號(hào)分隔。隨后可以將這些符號(hào)用作?#if?指令中的條件,就像內(nèi)置條件一樣。

全局自定義 #define 指令

您可以定義自己的預(yù)處理器指令來控制在編譯時(shí)包含的代碼。為此,必須將包含額外指令的文本文件添加到?Assets?文件夾。文件名取決于您使用的語言。擴(kuò)展名為 __.rsp__:

C#(播放器和 Editor 腳本)????????????????????????????????????<項(xiàng)目路徑>/Assets/mcs.rsp

舉例來說,如果在?mcs.rsp?文件中包含單行?-define:UNITY_DEBUG,則 #define 指令?UNITY_DEBUG?將作為 C# 腳本的全局 #define 指令存在,但 Editor 腳本除外。

每次對(duì)?.rsp?文件進(jìn)行更改時(shí),都需要重新編譯才能使更改生效??赏ㄟ^更新或重新導(dǎo)入單個(gè)腳本(.js 或 .cs)文件來完成此操作。

注意

如果只想修改全局 #define 指令,請(qǐng)使用?Player?設(shè)置中的?Scripting Define Symbols__,因?yàn)榇诉x項(xiàng)涵蓋了所有編譯器。如果選擇?.rsp__ 文件,則需要為 Unity 使用的每個(gè)編譯器提供一個(gè)文件。

包含在 Editor 安裝文件夾中的?mcs?應(yīng)用程序的“Help”部分中描述了?.rsp?文件的使用方法??赏ㄟ^運(yùn)行?mcs -help?獲取更多信息。

請(qǐng)注意,.rsp?文件需要與正在調(diào)用的編譯器匹配。例如:

  • 當(dāng)針對(duì) .NET 3.5 Equivalent(已棄用)腳本運(yùn)行時(shí)版本時(shí),__mcs__ 與?mcs.rsp?一起使用,

  • 當(dāng)針對(duì) .NET 4.x Eqivalent 腳本運(yùn)行時(shí)版本編譯器時(shí),__csc__ 與?csc.rsp?一起使用。


Unity-平臺(tái)相關(guān)的編譯的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
公安县| 双桥区| 芦溪县| 郓城县| 丹凤县| 闽清县| 天祝| 上蔡县| 酒泉市| 梨树县| 宿松县| 洪湖市| 原阳县| 亳州市| 怀仁县| 崇阳县| 高陵县| 海林市| 遂平县| 威信县| 新民市| 吉首市| 加查县| 故城县| 铜陵市| 通山县| 金山区| 安福县| 克拉玛依市| 丽江市| 临海市| 江阴市| 唐海县| 永和县| 阿鲁科尔沁旗| 海丰县| 鄢陵县| 西盟| 星子县| 福泉市| 福州市|