Unity includes a feature named "Platform Dependent Compilation". This consists of some preprocessor directives that let you
Unity包含一个名为"平台依赖编译"的功能。他包含一些预处理指令,能够让你专门在一个支持的平台上分开编译和执行某一段代码。
Furthermore, you can run this code within the Editor, so you can compile the code specifically for your mobile/console and test it in the Editor!
此外,你可以在编辑器中运行此代码,这样你就可以在mobile/console上编译此代码,并在编辑器中对其进行测试!
Platform Defines 平台的定义
The platform defines that Unity supports for your scripts are:
Unity支持的平台定义脚本是:
-
UNITY_EDITORDefine for calling Unity Editor scripts from your game code.
定义从游戏代码调用Unity编辑器脚本 -
UNITY_STANDALONE_OSXPlatform define for compiling/executing code specifically for Mac OS (This includes Universal, PPC and Intel architectures).
专门用于Mac OS(包括Universal, PPC and Intel架构)编译或执行的代码的平台定义 -
UNITY_DASHBOARD_WIDGETPlatform define when creating code for Mac OS dashboard widgets.
当为Mac OS dashboard widgets创建代码时的平台定义 -
UNITY_STANDALONE_WINUse this when you want to compile/execute code for Windows stand alone applications.
在你想为Windows独立的应用程序编译/执行代码时使用的脚本 -
UNITY_WEBPLAYERPlatform define for web player content (this includes Windows and Mac Web player executables).
平台定义网页播放器的内容(包括Windows和Mac播放器的可执行文件) -
UNITY_WIIPlatform define for compiling/executing code for the Wii console.
为Wii游戏机编译/执行的代码的平台定义脚本 -
UNITY_IPHONEPlatform define for compiling/executing code for the iPhone platform.
为iPhone平台编译/执行的代码的平台定义脚本 -
UNITY_ANDROIDPlatform define for the Android platform.
为Android平台的平台定义脚本 -
UNITY_PS3Platform define for running Play Station 3 code.
为运行PS3代码的平台定义脚本 -
UNITY_XBOX360Platform define for executing XBbox 360 code.
为执行XBbox360代码的平台定义脚本 -
UNITY_NACLPlatform define when compiling code for Google native client (this will be set additionally to UNITY_WEBPLAYER).
为Google本地客户端(在UNITY_WEBPLAYER进行设置)编译代码的平台定义脚本 -
UNITY_FLASHPlatform define when compiling code for Adobe Flash.
为了Adobe Flash编译时的代码的平台定义脚本
Note:
注意:这些定义在3.0版本时被引入。
Also you can compile code selectively depending on the version of the engine you are working on. Currently the supported ones are:
你可以选择性的编译代码,这取决于你正在使用的引擎的版本。目前支持的有:
-
UNITY_2_6Platform define for the major version of Unity 2.6.
支持Unity2.6主版本号的平台定义 -
UNITY_2_6_1Platform define for specific version 1 from the major release 2.6.
支持2.6以后的具体版本2.6.1的平台定义 -
UNITY_3_0Platform define for the major version of Unity 3.0.
支持Unity3.0主版本号的平台定义 -
UNITY_3_0_0Platform define for the specific version 0 of Unity 3.0.
支持Unity3.0版本以后特定的版本3.0.0的平台定义 -
UNITY_3_1Platform define for major version of Unity 3.1.
支持Unity3.1主版本号的平台定义 -
UNITY_3_2Platform define for major version of Unity 3.2.
支持Unity3.2主版本号的平台定义 -
UNITY_3_3Platform define for major version of Unity 3.3.
支持Unity3.3主版本号的平台定义 -
UNITY_3_4Platform define for major version of Unity 3.4.
支持Unity3.4主版本号的平台定义 -
UNITY_3_5Platform define for major version of Unity 3.5.
支持Unity3.5主版本号的平台定义
Note:
注意:之前2.6.0版本中没有平台定义,此功能是在该版本中首次引入。
C# Example:
using UnityEngine; using System.Collections; public class PlatformDefines : MonoBehaviour { voidStart () { #if UNITY_EDITOR Debug.Log("Unity Editor"); #endif #if UNITY_IPHONEDebug.Log("Iphone"); #endif #if UNITY_STANDALONE_OSX Debug.Log("Stand Alone OSX"); #endif #if UNITY_STANDALONE_WIN Debug.Log("Stand Alone Windows"); #endif } }
Then, depending on which platform you selected, one of the messages will get printed on the Unity console when you press play.
然后,根据你选择的平台,当按下Play时,Unity会在控制台中输出一条消息。