unity平台的预处理
来源:互联网 发布:软件测试理论基础知识 编辑:程序博客网 时间:2024/04/28 04:49
在开发中,特别是unity的跨平台中,我们常常会在各个平台游走,如安卓版,苹果版,PC版......。在此不同的平台上,有可能我们须要做不同的操作。然而我们就能够用unity的自带的平台宏定义方式来做平台的推断。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_STANDALONE_LINUXUse this when you want to compile/execute code for Linux stand alone applications.UNITY_STANDALONEUse this to compile/execute code for any standalone platform (Mac, Windows or Linux).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 PlayStation 3 code.UNITY_XBOX360Platform define for executing Xbox 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.
以后我们能够依据如上宏定义就能够去轻而易举的非常easy去在我们代码中增加推断了。我举个简单样例,例如以下:
using UnityEngine; using System.Collections; public class Recompile : MonoBehaviour { private string platform = string.Empty; // Use this for initialization void Start() { DebugPlatformMesaage(); } void DebugPlatformMesaage() { #if UNITY_EDITOR platform = "hi,大家好,我是在unity编辑模式下"; #elif UNITY_XBOX360 platform="hi,大家好,我在XBOX360平台"; #elif UNITY_IPHONE platform="hi,大家好,我是IPHONE平台"; #elif UNITY_ANDROID platform="hi,大家好,我是ANDROID平台"; #elif UNITY_STANDALONE_OSX platform="hi,大家好,我是OSX平台"; #elif UNITY_STANDALONE_WIN platform="hi,大家好,我是Windows平台"; #endif Debug.Log("Current Platform:" + platform); } }
上面假设我是在Editor状态下的话,就能看见打印出:
我们也能够自定义宏定义,在PlayerSetting中定义:
比如我在上面圈起来的地方填写一个CUSTOM_ITF这个预编译指令。然后在DebugPlatformMesaage函数尾部增加这句话
//新加入的内容 #if CUSTOM_ITF customMsg = "我自己定义了预编译"; #endif Debug.Log(customMsg);
然后我们执行看下,你就能在控制台看见我们输出的信息了:
当我们把我们自己定义的宏定义给去掉的时候,我们打印的信息就不会出来。
除了这些,unity中还有各个版本号的宏定义,一般开发插件的大牛都会用到。
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.UNITY_4_0Platform define for major version of Unity 4.0.UNITY_4_0_1Platform define for major version of Unity 4.0.1.UNITY_4_1Platform define for major version of Unity 4.1.UNITY_4_2Platform define for major version of Unity 4.2.
0 0
- unity平台的预处理
- unity平台的预处理
- unity平台的预处理
- unity平台的预处理
- unity平台的预处理
- unity平台的预处理
- unity平台的预处理
- Unity 平台的预处理
- Unity平台的预处理
- Unity平台的预处理
- unity平台的预处理
- Unity平台的预处理
- [unity3d]unity平台的预处理
- [unity3d]unity平台的预处理
- Unity平台预处理
- unity平台预处理
- Unity平台的预处理及依赖于平台的编译
- Unity平台预处理器指令
- 第一章:在IDEA里搭建基于Forge的Minecraft mod开发环境
- 控制反转(IoC)与依赖注入(DI)
- android This tag and its children can be replaced by one <TextView/> and a compound drawable 布局文件提示
- ShellExecute调用程序出现R6010 -abort() has been called
- MG3732使用笔记
- unity平台的预处理
- Linux下防CC攻击:封掉某个ip
- 【凯子哥带你学Framework】Activity启动过程全解析
- sql server select case when的用法
- 好的报纸
- 【android学习笔记】 android studio 编译调试 错误
- jquery.validate.js的基本用法入门
- 配置zabbix邮件报警
- AutoLayout正确动画方式