Unity3D不同版本及发布平台编写专用的程式码
来源:互联网 发布:90后听的网络歌曲 编辑:程序博客网 时间:2024/05/19 17:04
原文地址:
http://www.unitymanual.com/4226.html
当制作跨平台游戏时,虽然Unity已经相当方便了,但因为各平台间的效能及功能差异,我们常常需要附加专用的程式码来做一些处理,尽管Unity的API已经有Application.platform来让我们进行判断,但有些RuntimeClasses在不适用的平台Bulid时会回报错误,像是iPhoneSettings或是iPhoneKeyboard在Bulid成PC平台游戏时就会直接报错而无法Bulid。
另外,当Unity有新版本发行,在Script的语法上也可能做些变动,像是近期的3.4,官方的更新详细内容说明页面上就有提到对于Javascript的变动,也有提醒旧有程式可能在更新到新版Unity後可能会报错,此时,我们就必须自行调整程式内容,才能使游戏正常运作。
基于这些在编译时就会发生的错误,即使我们在程式中加入Application.platform或Application.unityVersion来判断执行平台或Unity版本,也没多大帮助,所以只好在不同平台编译时将暂时不能用的程式区段注解起来,以免发生错误,但是这种做法实在是不方便,特别是当程式越写越多时,出问题的机会就更大了;幸好,Unity在2.6及3.0之後分别为版本及平台提供了解决之道,所以我们只要为不同平台或Unity版本都撰写专用的程式码,然後利用#if、#else及#endif将这些程式码区隔开来,那么编译时就只会去编辑到需要的部份,可以直接排除这一类编译期发生的错误。
用来判断平台的常数有:
UNITY_EDITOR
UNITY_STANDALONE_OSX
UNITY_DASHBOARD_WIDGET
UNITY_STANDALONE_WIN
UNITY_WEBPLAYER
UNITY_WII
UNITY_IPHONE
UNITY_ANDROID
UNITY_PS3
UNITY_XBOX360
在 Unity 编辑器中,这些常数就已是有效用的,而不用等到输出时才会生效,例如在 Build Settings 中是将平台切换到 Web Player ,此时虽然未将游戏输出,在程式码中判断为 UNITY_WEBPLAYER 可执行的区域就会被编译,如此也大大增加了制作时期的便利性。
用来判断版本的常数则有:
UNITY_2_6
UNITY_2_6_1
UNITY_3_0
UNITY_3_0_0
UNITY_3_1
UNITY_3_2
UNITY_3_3
UNITY_3_4
- Unity3D教程:不同版本及发布平台编写专用的程式码
- Unity3D教程:不同版本及发布平台编写专用的程式码
- Unity3D不同版本及发布平台编写专用的程式码
- Unity3d将程式码封装的办法
- 支持不同的平台版本
- Unity3d 发布IOS平台
- RCP程序发布到不同的平台
- 不同平台发布外链的技巧
- Android培训---支持不同的平台版本
- Android 支持不同的SDK版本平台
- Training--支持不同的平台版本
- Android不同平台版本
- Unity3d Load AssetBundle(不同平台)
- Android程式编写及调试新手入门-1
- Android程式编写及调试新手入门-2
- Android程式编写及调试新手入门-3
- Android程式编写及调试新手入门-4
- Unity3D开发之不同平台二进制资源文件的读取
- web程序统计在线人数的实现方式!
- 如何辨别sql文件是用于sqlserver的还是mysql的
- 数据结构基础 之 二叉堆 概念篇
- Nano编辑
- 国际化的jstl标签
- Unity3D不同版本及发布平台编写专用的程式码
- QT IDE经验总结
- JSON API 1.0 核心开发者自述 | 你所不知道的那些技术细节
- C++指针(我所了解的)
- 截取字符串中特定字符之前的子串,并返回剩余子串
- 浅谈PHP5中垃圾回收算法(Garbage Collection)的演化
- Inline Assembly Intro - Float Point Register
- JSTL标准
- 实现flume tailfsource解决丢数等问题