打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Platform Dependent Compilation 平台依赖编译

Unity includes a feature named "Platform Dependent Compilation". This consists of some preprocessor directives that let you divide your scripts to compile and execute a section of code exclusively for one of the supported platforms.

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_EDITOR
    Define for calling Unity Editor scripts from your game code.
    定义从游戏代码调用Unity编辑器脚本
  • UNITY_STANDALONE_OSX
    Platform define for compiling/executing code specifically for Mac OS (This includes Universal, PPC and Intel architectures).
    专门用于Mac OS(包括Universal, PPC and Intel架构)编译或执行的代码的平台定义
  • UNITY_DASHBOARD_WIDGET
    Platform define when creating code for Mac OS dashboard widgets.
    当为Mac OS dashboard widgets创建代码时的平台定义
  • UNITY_STANDALONE_WIN
    Use this when you want to compile/execute code for Windows stand alone applications.
    在你想为Windows独立的应用程序编译/执行代码时使用的脚本
  • UNITY_WEBPLAYER
    Platform define for web player content (this includes Windows and Mac Web player executables).
    平台定义网页播放器的内容(包括Windows和Mac播放器的可执行文件)
  • UNITY_WII
    Platform define for compiling/executing code for the Wii console.
    为Wii游戏机编译/执行的代码的平台定义脚本
  • UNITY_IPHONE
    Platform define for compiling/executing code for the iPhone platform.
    为iPhone平台编译/执行的代码的平台定义脚本
  • UNITY_ANDROID
    Platform define for the Android platform.
    为Android平台的平台定义脚本
  • UNITY_PS3
    Platform define for running Play Station 3 code.
    为运行PS3代码的平台定义脚本
  • UNITY_XBOX360
    Platform define for executing XBbox 360 code.
    为执行XBbox360代码的平台定义脚本
  • UNITY_NACL
    Platform define when compiling code for Google native client (this will be set additionally to UNITY_WEBPLAYER).
    为Google本地客户端(在UNITY_WEBPLAYER进行设置)编译代码的平台定义脚本
  • UNITY_FLASH
    Platform define when compiling code for Adobe Flash.
    为了Adobe Flash编译时的代码的平台定义脚本

Note: These defines were introduced at version 3.0.

注意:这些定义在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_6
    Platform define for the major version of Unity 2.6.
    支持Unity2.6主版本号的平台定义
  • UNITY_2_6_1
    Platform define for specific version 1 from the major release 2.6.
    支持2.6以后的具体版本2.6.1的平台定义
  • UNITY_3_0
    Platform define for the major version of Unity 3.0.
    支持Unity3.0主版本号的平台定义
  • UNITY_3_0_0
    Platform define for the specific version 0 of Unity 3.0.
    支持Unity3.0版本以后特定的版本3.0.0的平台定义
  • UNITY_3_1
    Platform define for major version of Unity 3.1.
    支持Unity3.1主版本号的平台定义
  • UNITY_3_2
    Platform define for major version of Unity 3.2.
    支持Unity3.2主版本号的平台定义
  • UNITY_3_3
    Platform define for major version of Unity 3.3.
    支持Unity3.3主版本号的平台定义
  • UNITY_3_4
    Platform define for major version of Unity 3.4.
    支持Unity3.4主版本号的平台定义
  • UNITY_3_5
    Platform define for major version of Unity 3.5.
    支持Unity3.5主版本号的平台定义

Note: For versions before 2.6.0 there are no platform defines as this feature was first introduced in that version.

注意:之前2.6.0版本中没有平台定义,此功能是在该版本中首次引入。

Testing precompiled code. 测试预编译的代码

We are going to show a small example of how to use the precompiled code. This will simply print a message that depends on the platform you have selected to build your target.

我们要展示如何使用预编译代码的一个小例子,这将根据你选择要生成目标平台输出一条消息。

First of all, select the platform you want to test your code against by clicking on File -> Build Settings. This will bring the build settings window to select your target platform.

首先,通过单击File->Bulid Settings选择你想测试你的代码的目标平台,将需要在设置窗口里选择你的目标平台。


Build Settings window with the WebPlayer Selected as Target platform.
在生成设置窗口中选择WebPlayer作为目标平台

Select the platform you want to test your precompiled code against and press the Switch Editor button to tell Unity which platform you are targeting.

选择你想测试的预编译代码,按下Switch Editor按钮告诉Unity你要测试的目标平台。

Create a script and copy/paste this code:

创建一个脚本,复制/粘贴这段代码:

JavaScript Example:

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# Example:

using UnityEngine;using System.Collections;public class PlatformDefines : MonoBehaviour {  void Start () {    #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  }			   }

Boo Example:

import UnityEngineclass PlatformDefines (MonoBehaviour): 	def Start ():		ifdef UNITY_EDITOR:			Debug.Log("Unity Editor")		ifdef UNITY_IPHONE:			Debug.Log("IPhone")		ifdef UNITY_STANDALONE_OSX:			Debug.Log("Stand Alone OSX")		ifdef not UNITY_IPHONE:			Debug.Log("not an iPhone")

Then, depending on which platform you selected, one of the messages will get printed on the Unity console when you press play.

然后,根据你选择的平台,当按下Play时,Unity会在控制台中输出一条消息。

页面最后更新:2011-11-21

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【Unity3D 灵巧小知识点】☀️ | 使用宏定义和Application.platform判断运行平台
一个Windows 系统究竟有多复杂?
Windows 实现指定窗口始终在前的脚本
使用Visual Studio Comunity 2019开发Unity C#脚本没有自动补全的解决方法
学习使用C#进行Unity3D脚本编程
[Unity3D]脚本中Start()和Awake()的区别
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服