zoukankan      html  css  js  c++  java
  • Unity平台的预处理

    Unity平台的预处理

    在开发中,特别是unity的跨平台中,我们常常会在各个平台游走,如安卓版,苹果版,PC版......。在此不同的平台上,有可能我们须要做不同的操作。

    然而我们就能够用unity的自带的平台宏定义方式来做平台的推断。


    Unity帮我们定义了例如以下平台预处理:

    名称

     描写叙述

    UNITY_EDITOR

    Unity编辑器

    UNITY_STANDALONE_OSX

    专门为Mac OS(包括UniversalPPCIntelarchitectures)平台的定义

    UNITY_DASHBOARD_WIDGET

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

    UNITY_STANDALONE_WIN

    Windows系统

    UNITY_STANDALONE_LINUX

    LINUX的独立的应用程序

    UNITY_STANDALONE

    独立的平台 (Mac, Windows or Linux).

    UNITY_WEBPLAYER

    网页播放器(包括WindowsMac Web播放器可执行文件)。

    UNITY_WII

    Wii游戏机平台。

    UNITY_IPHONE

    苹果系统

    UNITY_ANDROID

    安卓系统

    UNITY_PS3

    PlayStation 3

    UNITY_XBOX360

    VBOX360系统

    UNITY_NACL

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

    UNITY_FLASH

    Adobe Flash

    1.   using UnityEngine; 
    2.   using System.Collections; 
    3.     
    4.   publicclassRecompile:MonoBehaviour 
    5.   {    
    6.       privatestring platform =string.Empty; 
    7.       // Use this for initialization 
    8.       voidStart() 
    9.       { 
    10.          DebugPlatformMesaage(); 
    11.      } 
    12.      voidDebugPlatformMesaage() 
    13.      { 
    14.   
    15.  #ifUNITY_EDITOR 
    16.          platform ="hi,大家好,我是在unity编辑模式下"; 
    17.  #elifUNITY_XBOX360 
    18.         platform="hi,大家好,我在XBOX360平台"; 
    19.  #elifUNITY_IPHONE 
    20.         platform="hi,大家好,我是IPHONE平台"; 
    21.  #elifUNITY_ANDROID 
    22.         platform="hi,大家好,我是ANDROID平台"; 
    23.  #elifUNITY_STANDALONE_OSX 
    24.         platform="hi,大家好,我是OSX平台"; 
    25.  #elifUNITY_STANDALONE_WIN 
    26.         platform="hi,大家好,我是Windows平台"; 
    27.  #endif 
    28.          Debug.Log("CurrentPlatform:"+ platform); 
    29.      } 
    30.  } 
     

    上面假设我是在Editor状态下的话,就能看见打印出:

     我们也能够自定义宏定义,在PlayerSetting中定义:

     比如我在上面圈起来的地方填写一个CUSTOM_ITF这个预编译指令。然后在DebugPlatformMesaage函数尾部增加这句话:

     

    1.  //新加入的内容 

    2.  #if CUSTOM_ITF 

    3.          customMsg ="我自己定义了预编译"; 

    4.  #endif 

    5.          Debug.Log(customMsg); 

     

    然后我们执行看下,你就能在控制台看见我们输出的信息了:

     

    除了这些,unity中还有各个版本号的宏定义,一般开发插件的大牛都会用到。

     

     

    UNITY_2_6

    Platform define for the major version of Unity 2.6.

    UNITY_2_6_1

    Platform define for specific version 1 from the major release 2.6.

    UNITY_3_0

    Platform define for the major version of Unity 3.0.

    UNITY_3_0_0

    Platform define for the specific version 0 of Unity 3.0.

    UNITY_3_1

    Platform define for major version of Unity 3.1.

    UNITY_3_2

    Platform define for major version of Unity 3.2.

    UNITY_3_3

    Platform define for major version of Unity 3.3.

    UNITY_3_4

    Platform define for major version of Unity 3.4.

    UNITY_3_5

    Platform define for major version of Unity 3.5.

    UNITY_4_0

    Platform define for major version of Unity 4.0.

    UNITY_4_0_1

    Platform define for major version of Unity 4.0.1.

    UNITY_4_1

    Platform define for major version of Unity 4.1.

    UNITY_4_2

    Platform define for major version of Unity 4.2.

     

     

    补充:

    1/ 获得当前运行平台

    1.  //获得当前运行平台

    2.     Debug.Log("plat ="+Application.platform);

    1.  //可以获取到的平台类型 

    2.     publicenumRuntimePlatform 

    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.      }


  • 相关阅读:
    Atom,AtomPub 和Java 转载
    使用OData协议查询Windows日志 转
    许可协议BSD GPL MPL LGPL APL转载
    Eclipse Galileo 简介
    常见证书格式和转换
    JVM简介转
    Android Native 代码开发学习笔记转载
    echarts——各个配置项详细说明总结
    Mysql 安装服务无法启动解决方案与使用的一般使用指令
    js中如何把字符串(文本)转化为对象
  • 原文地址:https://www.cnblogs.com/caymanlu/p/6361692.html
Copyright © 2011-2022 走看看