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

    Unity平台的预处理

    在开发中,特别是unity的跨平台中,我们常常会在各个平台游走,如安卓版,苹果版,PC版......。在此不同的平台上,有可能我们须要做不同的操作。然而我们就能够用unity的自带的平台宏定义方式来做平台的推断。

    Unity帮我们定义了例如以下平台预处理:
    名称  描写叙述
    UNITY_EDITOR Unity编辑器
    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 or Linux).
    UNITY_WEBPLAYER 网页播放器(包括Windows和Mac 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 publicclassRecompile:MonoBehaviour
     4 {
     5 privatestring platform =string.Empty;
     6 // Use this for initialization
     7 voidStart()
     8 {
     9 DebugPlatformMesaage();
    10 }
    11 voidDebugPlatformMesaage()
    12 {
    13 #if UNITY_EDITOR
    14 platform ="hi,大家好,我是在unity编辑模式下";
    15 #elif UNITY_XBOX360
    16 platform="hi,大家好,我在XBOX360平台";
    17 #elif UNITY_IPHONE
    18 platform="hi,大家好,我是IPHONE平台";
    19 #elif UNITY_ANDROID
    20 platform="hi,大家好,我是ANDROID平台";
    21 #elif UNITY_STANDALONE_OSX
    22 platform="hi,大家好,我是OSX平台";
    23 #elif UNITY_STANDALONE_WIN
    24 platform="hi,大家好,我是Windows平台";
    25 #endif
    26 Debug.Log("Current Platform:"+ platform);
    27 }
    28 }
     
    上面假设我是在Editor状态下的话,就能看见打印出:
     我们也能够自定义宏定义,在PlayerSetting中定义:
     比如我在上面圈起来的地方填写一个CUSTOM_ITF这个预编译指令。然后在DebugPlatformMesaage函数尾部增加这句话:
     
    //新加入的内容
    #if CUSTOM_ITF
    customMsg ="我自己定义了预编译";
    #endif
    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/ 获得当前运行平台
    //获得当前运行平台
    Debug.Log("plat = "+Application.platform);
    //可以获取到的平台类型
    publicenumRuntimePlatform
    {
    OSXEditor=0,
    OSXPlayer=1,
    WindowsPlayer=2,
    OSXWebPlayer=3,
    OSXDashboardPlayer=4,
    WindowsWebPlayer=5,
    WiiPlayer=6,
    WindowsEditor=7,
    IPhonePlayer=8,
    PS3 =9,
    XBOX360 =10,
    Android=11,
    NaCl=12,
    LinuxPlayer=13,
    FlashPlayer=15,
    }
     
    From:http://blog.csdn.net/oskytonight/article/details/40111401



  • 相关阅读:
    使用phpspider抓取网站文章
    laravel5中使用faker生成模拟数据
    记录一次apache服务器启动报错和解决方法
    记录一次手误删除了root用户的家目录
    Python+selenium+PIL截屏后,裁剪图片不准确(Win10)
    Git学习笔记(五)
    Git学习笔记(一)
    Git学习笔记(四)
    Git学习笔记(三)
    Git学习笔记(二)
  • 原文地址:https://www.cnblogs.com/caymanlu/p/5724883.html
Copyright © 2011-2022 走看看