热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Unity3D平台宏定义之美

Unity包含一个“平台相关的编译”功能。这包括一些预处理指令,让你分割你的脚本编译和专为支持的平台之一执行代码段。您可以Unity编辑器中运行代码,这

Unity包含一个“平台相关的编译”功能。这包括一些预处理指令,让你分割你的脚本编译和专为支持的平台之一执行代码段。

 

您可以Unity编辑器中运行代码,这样你就可以专门为你的目标平台编译代码,并在编辑器中测试!

 

平台#define指令

 

Unity支持脚本的平台#define指令如下:

Property:Function:
UNITY_EDITORUnity编辑器
UNITY_EDITOR_WINWindows 操作系统.
UNITY_EDITOR_OSXmacos操作系统
UNITY_STANDALONE_OSX专门为macos(包括Universal, PPC,Intel architectures)平台的定义
UNITY_STANDALONE_WIN专门为windows平台的定义
UNITY_STANDALONE_LINUX专门为Linux平台的定义
UNITY_STANDALONE独立平台 (Mac OS X, Windows or Linux).
UNITY_WIIWII 游戏机平台
UNITY_IOSiOS系统平台
UNITY_IPHONEiPhone
UNITY_ANDROIDandroid系统平台
UNITY_PS4ps4平台
UNITY_SAMSUNGTV三星TV平台
UNITY_XBOXONEXbox One 平台
UNITY_TIZENTizen 平台
UNITY_TVOSApple TV 平台
UNITY_WSA#define directive for Universal Windows Platform. Additionally, NETFX_CORE is defined when compiling C# files against .NET Core and using .NET scripting backend.
UNITY_WSA_10_0#define directive for Universal Windows Platform. Additionally WINDOWS_UWP is defined when compiling C# files against .NET Core.
UNITY_WINRTUNITY_WSA.
UNITY_WINRT_10_0UNITY_WSA_10_0
UNITY_WEBGL#define directive for WebGL.
UNITY_FACEBOOKfaceBook平台(WebGL or Windows standalone).
UNITY_ADS调用广告方法,版本 5.2 以后
UNITY_ANALYTICS调用unity分析服务,版本5.2以后
UNITY_ASSERTIONS控制指令的过程

 

Unity版本判定方式:UNITY_X,UNITY_X_Y,UNITY_X_Y_Z例如:

UNITY_5Unity5版本,包含所有的5.x.y版本
UNITY_5_0Unity5.0版本,包含所有的5.0.x版本
UNITY_5_0_1Unity5.0.1版本

 

打包的时候,选择File>Build Settings然后显示平台选择界面。

 

代码实例C#:

// C#
using UnityEngine;
using System.Collections;
public class PlatformDefines : MonoBehaviour {void Start () {#if UNITY_EDITORDebug.Log("Unity Editor");#endif#if UNITY_IOSDebug.Log("Iphone");#endif#if UNITY_STANDALONE_OSXDebug.Log("Stand Alone OSX");#endif#if UNITY_STANDALONE_WINDebug.Log("Stand Alone Windows");#endif}
}

 

可以使用#if #elif

#if UNITY_EDITOR Debug.Log("Unity Editor");#elif UNITY_IOS Debug.Log("Unity iPhone"); #elseDebug.Log("Any other platform");
#endif

 

可以自定义宏定义,打开Other Settings窗口,选择Player Settings>Scripting Define Symbols


推荐阅读
  • 本文将带您了解Cocos家族的不同版本和分支,特别是Cocos Creator的发展历程及其核心特性,帮助初学者快速入门。 ... [详细]
  • Java EE CDI:解决依赖关系冲突的实例
    在本教程中,我们将探讨如何在Java EE的CDI(上下文和依赖注入)框架中有效解决依赖关系的冲突问题。通过学习如何使用限定符,您将能够为应用程序的不同客户端提供多种接口实现,并确保每个客户端都能正确调用其所需的实现。 ... [详细]
  • 本文探讨了Java编程中MVC模式的优势与局限,以及如何利用Java开发一款基于鸟瞰视角的赛车游戏。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • Ulysses Mac v29:革新文本编辑与写作体验
    探索Ulysses Mac v29,这款先进的纯文本编辑器为Mac用户带来了全新的写作和编辑环境。它不仅具备简洁直观的界面,还融合了Markdown等标记语言的最佳特性,支持多种格式导出,并提供强大的组织和同步功能。 ... [详细]
  • 国际高保真音乐流媒体平台的崛起:亚马逊与谷歌的竞争策略
    近期,亚马逊和谷歌正积极筹备推出高保真音乐流媒体服务,预计在2019年底前上线。根据市场研究机构CIRP的数据,截至2018年12月,美国智能音箱的安装量已增至6600万台,较第三季度增长显著。这一趋势对Spotify等传统流媒体平台构成了新的挑战。 ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 本文探讨了在iOS平台上开发BLE(蓝牙低功耗)应用程序时遇到的挑战,特别是如何实现应用在后台模式下仍能持续扫描并连接蓝牙设备。文章提供了具体的配置方法和常见的问题解决方案。 ... [详细]
  • java文本编辑器,java文本编辑器设计思路
    java文本编辑器,java文本编辑器设计思路 ... [详细]
  • 俗话说得好,“工欲善其事,必先利其器”。这句话不仅强调了工具的重要性,也提醒我们在任何项目开始前,准备合适的工具至关重要。本文将介绍几款C语言编程中常用的工具,帮助初学者更好地选择适合自己学习和工作的编程环境。 ... [详细]
  • 2017年苹果全球开发者大会即将开幕,预计iOS将迎来重大更新,同时Siri智能音箱有望首次亮相,AI技术成为大会焦点。 ... [详细]
  • 本文深入探讨网页游戏的开发流程,涵盖从程序框架设计到具体实现的技术细节,旨在为开发者提供全面的指导。 ... [详细]
  • 在Win10上利用VS2015构建Caffe2环境
    本文详细介绍如何在Windows 10操作系统上通过Visual Studio 2015编译Caffe2深度学习框架的过程。包括必要的软件安装、环境配置以及常见问题的解决方法。 ... [详细]
  • MySQL Debug 模式的实现与应用
    本文详细介绍了如何启用和使用 MySQL 的调试模式,包括编译选项、环境变量配置以及调试信息的解析。通过实际案例展示了如何利用调试模式解决客户端无法连接服务器的问题。 ... [详细]
author-avatar
TheKing小狼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有