平台依赖编译
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 平台的定义 Unity支持的平台定义脚本是: UNITY_EDITORDefine for calling Unity Editor scripts from your game code. UNITY_STANDALONE_OSXPlatform define for compiling/executing code specifically for Mac OS (This includes Universal,PPC and Intel architectures). UNITY_DASHBOARD_WIDGETPlatform define when creating code for Mac OS dashboard widgets. UNITY_STANDALONE_WINUse this when you want to compile/execute code for Windows stand alone applications. UNITY_WEBPLAYERPlatform define for web player content (this includes Windows and Mac Web player executables). UNITY_WIIPlatform define for compiling/executing code for the Wii console. UNITY_IPHONEPlatform define for compiling/executing code for the iPhone platform. UNITY_ANDROIDPlatform define for the Android platform. UNITY_PS3Platform define for running Play Station 3 code. UNITY_XBOX360Platform define for executing XBbox 360 code. UNITY_NACLPlatform define when compiling code for Google native client (this will be set additionally to UNITY_WEBPLAYER). UNITY_FLASHPlatform define when compiling code for Adobe Flash. Note: These defines were introduced at version 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. UNITY_2_6_1Platform define for specific version 1 from the major release 2.6. UNITY_3_0Platform define for the major version of Unity 3.0. UNITY_3_0_0Platform define for the specific version 0 of Unity 3.0. UNITY_3_1Platform define for major version of Unity 3.1. UNITY_3_2Platform define for major version of Unity 3.2. UNITY_3_3Platform define for major version of Unity 3.3. UNITY_3_4Platform define for major version of Unity 3.4. UNITY_3_5Platform define for major version of Unity 3.5. Note: For versions before 2.6.0 there are no platform defines as this feature was first introduced in that version. 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. 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_IPHONE #if UNITY_STANDALONE_OSX #if UNITY_STANDALONE_WIN C# Example: using UnityEngine; public class PlatformDefines : MonoBehaviour { #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: 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会在控制台中输出一条消息。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |