http://www.cnblogs.com/zhaoqingqing/p/3510332.html

API地址:http://docs.unity3d.com/Documentation/Manual/PlatformDependentCompilation.html

平台定义

UNITY_EDITOR 编辑器调用。

UNITY_STANDALONE_OSX 专门为Mac OS(包括Universal,PPC和Intelarchitectures)平台的定义。

UNITY_DASHBOARD_WIDGET Mac OS Dashboard widget (Mac OS仪表板小部件)。

UNITY_STANDALONE_WIN Windows 操作系统。

UNITY_STANDALONE_LINUX Linux的独立的应用程序。

UNITY_STANDALONE 独立的平台(Mac,Windows或Linux)。

UNITY_WEBPLAYER 网页播放器(包括Windows和Mac Web播放器可执行文件)。

UNITY_WII Wii游戏机平台。

UNITY_IPHONE iPhone平台。

UNITY_ANDROID Android平台。

UNITY_PS3 PlayStation 3。

UNITY_XBOX360 Xbox 360。

UNITY_NACL 谷歌原生客户端(使用这个必须另外使用UNITY_WEBPLAYER)。

UNITY_FLASH Adobe Flash。

也可以判断Unity版本,目前支持的版本

UNITY_2_6 平台定义为主要版本的Unity 2.6。

UNITY_2_6_1 平台定义的特定版本1的主要版本2.6。

UNITY_3_0 平台定义为主要版本的Unity 3.0。

UNITY_3_0_0 平台定义的特定版本的Unity 3.0 0。

UNITY_3_1 平台定义为主要版本的Unity 3.1。

UNITY_3_2 平台定义为主要版本的Unity 3.2。

UNITY_3_3 平台定义为主要版本的Unity 3.3。

UNITY_3_4 平台定义为主要版本的Unity 3.4。

UNITY_3_5 平台定义为主要版本的Unity 3.5。

UNITY_4_0 平台定义为主要版本的Unity 4.0。

UNITY_4_0_1 主要版本4.0.1统一的平台定义。

UNITY_4_1 平台定义为主要版本的Unity 4.1。

UNITY_4_2 平台定义为主要版本的Unity 4.2。

运行平台

  1. //获得当前运行平台
  2. Debug.Log("plat = " + Application.platform);
  1.  
  1. //可以获取到的平台类型
  2. public enum RuntimePlatform
  3. {
  4. OSXEditor = 0,
  5. OSXPlayer = 1,
  6. WindowsPlayer = 2,
  7. OSXWebPlayer = 3,
  8. OSXDashboardPlayer = 4,
  9. WindowsWebPlayer = 5,
  10. WiiPlayer = 6,
  11. WindowsEditor = 7,
  12. IPhonePlayer = 8,
  13. PS3 = 9,
  14. XBOX360 = 10,
  15. Android = 11,
  16. NaCl = 12,
  17. LinuxPlayer = 13,
  18. FlashPlayer = 15,
  19. }
  1.  
  1. Example
  1. // JS
  2. function Awake() {
  3. #if UNITY_EDITOR
  4. Debug.Log("Unity Editor");
  5. #endif
  6.  
  7. #if UNITY_IPHONE
  8. Debug.Log("Iphone");
  9. #endif
  10.  
  11. #if UNITY_STANDALONE_OSX
  12. Debug.Log("Stand Alone OSX");
  13. #endif
  14.  
  15. #if UNITY_STANDALONE_WIN
  16. Debug.Log("Stand Alone Windows");
  17. #endif
  18. }
  19.  
  20. // C#
  21. using UnityEngine;
  22. using System.Collections;
  23.  
  24. public class PlatformDefines : MonoBehaviour {
  25. void Start () {
  26.  
  27. #if UNITY_EDITOR
  28. Debug.Log("Unity Editor");
  29. #endif
  30.  
  31. #if UNITY_IPHONE
  32. Debug.Log("Iphone");
  33. #endif
  34.  
  35. #if UNITY_STANDALONE_OSX
  36. Debug.Log("Stand Alone OSX");
  37. #endif
  38.  
  39. #if UNITY_STANDALONE_WIN
  40. Debug.Log("Stand Alone Windows");
  41. #endif
  42.  
  43. }
  44. }
  45.  
  46. // Boo
  47. import UnityEngine
  48.  
  49. class PlatformDefines (MonoBehaviour):
  50.  
  51. def Start ():
  52. ifdef UNITY_EDITOR:
  53. Debug.Log("Unity Editor")
  54.  
  55. ifdef UNITY_IPHONE:
  56. Debug.Log("IPhone")
  57.  
  58. ifdef UNITY_STANDALONE_OSX:
  59. Debug.Log("Stand Alone OSX")
  60.  
  61. ifdef not UNITY_IPHONE:
  62. Debug.Log("not an iPhone")

Unity3D 多平台_预编译相关宏定义的更多相关文章

  1. #ifdef预编译相关用法

    #ifdef预编译相关用法主要有:(1)#ifdef XXX executing the corresponding xxx code #endif(2)#ifdef XXX executing th ...

  2. Visual Studio 2013 配置多个Release版本,并为每个版本配置预编译的宏

    最近开发过程中,需要将同一份工程编译成两个版本,分别为ReleaseA和ReleaseB. ReleaseB比ReleaseA少了部分功能,所以希望在编译的时候,根据不同的版本编译工程中相应的代码. ...

  3. Cmake 脚本对预处理器的宏定义

    我们有些时候会在#if   #ifndef   等预编译命令里面看到_WIN32等定义的宏.但是有些宏定义,你即使通过Visual Studio右键的go to definitions 和go to ...

  4. C 图像处理 颜色相关宏定义

    很多年前整理的,像素处理的宏定义,包括r8g8b8到r5g6b5之间的相互转化,浮点数像素与整数值之间的相互转化,像素值的插值.取反等处理.具体没什么好说的,宏定义的代码还是很容易看的.这套东西对搞图 ...

  5. linux, windows, mac, ios等平台GCC预编译宏判断

    写跨平台c/c++程序的时候,需要搞清各平台下面的预编译宏,区分各平台代码.而跨平台c/c++编程,GCC基本在各平台都可以使用.整理了一份各平台预编译宏的判断示例. 需要注意几点: * window ...

  6. Unity中各个平台的预编译的运用方式

    1,unity中官方文档的一个操纵关键词   Platform Dependent Compilation 2,常用的预编译关键词    UNITY_EDITOR    编辑器调用.UNITY_STA ...

  7. C-基础:关于预编译以及宏

    这是没有引入任何头文件时,如果使用"NULL",编译器会报错:没有定义NULL.此时可用下面代码定义. #undef NULL //#undef 是在后面取消以前定义的宏定义#if ...

  8. [转] 关于VS中区分debug与release,32位与64位编译的宏定义

    在vs编程中,常常涉及到32位和64位程序的编译,怎么判断当前编译是32位编译还是64位编译?如何判断是debug下编译还是release下编译?因为之前用到,这里记录一下,省的忘了又要疯狂的goog ...

  9. c24--预编译,宏定义(带参数,不带参数)

    // // main.c // 宏定义 #include <stdio.h> void test(); /* 预处理指令:在我们的文件翻译成0和1之前做的操作我们称之为预处理指令,一般以# ...

随机推荐

  1. UVA11019 Martix Matcher --- AC自动机

    UVA11019 Martix Matcher 题目描述: 给定一个\(n*m\)的文本串 问一个\(x*y\)的模式串出现的次数 AC自动机的奇妙使用 将\(x*y\)的模式串拆分成x个串,当x个串 ...

  2. bzoj 1857

    三分,对于单凸的函数(单调的也可以),可以找出最值. 这道题可以感性认识一下...... /****************************************************** ...

  3. MySQL导数据工具对比

    最近遇到非常多的导数据的需求(主要是CSV的需求),专门对mysqldump.pt-archive.mydumper做了一下对别,粗浅研究,以备将来使用.   msqldump pt-archive ...

  4. linux命令: Netstat

    在Internet RFC标准中,Netstat的定义是: Netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告.    Netstat是控 ...

  5. 什么是 Backbone.js

    Backbone.js 是一个在JavaScript环境下的 模型-视图-控制器 (MVC) 框架.任何接触较大规模项目的开发人员一定会苦恼于各种琐碎的事件回调逻辑.以及金字塔般的代码.而且,在传统的 ...

  6. Java代码优化方案 J2ME内存优化

    Java代码优化方案 J2ME内存优化 从几本书上,N个网站上整理的一些JAVA代码优化方案,最近的项目只有1M内存可用,必须很抠门了~J2ME项目更要注意的 避免内存溢出 l 不用的对象释放(置空) ...

  7. 自己定义AlertDialog对话框布局

    自己定义对话框中的信息body布局 LayoutInflater inflater =getLayoutInflater(); View layout = inflater.inflate(R.lay ...

  8. KVM-Introduce

    相信非常多的人对虚拟机并不陌生,眼下也有非常多优秀的虚拟机软件,比如:VMware, VirtualBox, Xen, KVM等.而本文的主要内容是介绍KVM. KVM: Kernel Based V ...

  9. s:iterator数据累加示例代码

    <s:set var="xs_heji" value="0" /> <s:set var="km_heji" value= ...

  10. jQuery EasyUI API 中文文档 - Panel面板

    <html> <head> <title>布局管理器--控制面板</title> <script src="jquery-easyui/ ...