1.1 Unity 3D简介
Unity 3D也称Unity,是由Unity Technologies公司开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,其编辑器运行在Windows和MacOS X下,可发布游戏至Windows、Mac、Wii、iPhone、WebGL(需要HTML5)、Windows Phone 8和Android平台。也可以利用Unity Web Player插件发布网页游戏,支持Mac和Windows平台的网页浏览,是一个全面整合的专业游戏引擎。业界现有的商用游戏引擎和免费游戏引擎数不胜数,其中最具代表性的商用游戏引擎有UnReal、CryENGINE、Havok Physics、Game Bryo、Source Engine等,但是这些游戏引擎价格昂贵,使得游戏开发成本大大增加。而Unity公司提出了“大众游戏开发”(Democratizing Development)的口号,提供了任何人都可以轻松开发的优秀游戏引擎,使开发人员不再顾虑价格。
Unity的中文意思为“团结”。Unity的核心含义是想告诉大家,游戏开发需要在团队合作基础上相互配合完成。时至今日,游戏市场上出现了众多种类的游戏,它们是由不同的游戏引擎开发的,Unity 3D以其强大的跨平台特性与绚丽的3D渲染效果而闻名于世,现在很多商业游戏及虚拟现实产品都采用Unity 3D引擎来开发。
1.1.1 Unity 3D的特色
Unity 3D游戏开发引擎目前之所以炙手可热,与其完善的技术以及丰富的个性化功能密不可分。Unity 3D游戏开发引擎易于上手,降低了对游戏开发人员的要求。下面对Unity 3D游戏开发引擎的特色进行阐述。
1. 跨平台
游戏开发者可以通过不同的平台进行开发。游戏制作完成后,游戏无需任何修改即可直接一键发布到常用的主流平台上。Unity 3D游戏可发布的平台包括Windows、Linux、MacOS X、iOS、Android、Xbox360、PS3以及Web等。跨平台开发可以为游戏开发者节省大量时间。以往游戏开发中,开发者要考虑平台之间的差异,比如屏幕尺寸、操作方式、硬件条件等,这样会直接影响到开发进度,给开发者造成巨大的麻烦,Unity 3D几乎为开发者完美地解决了这一难题,将大幅度减少移植过程中不必要的麻烦。
2. 综合编辑
Unity 3D的用户界面具备视觉化编辑、详细的属性编辑器和动态游戏预览特性。Unity 3D创新的可视化模式让游戏开发者能够轻松构建互动体验,当游戏运行时可以实时修改参数值,方便开发,为游戏开发节省大量时间。
3. 资源导入
项目可以自动导入资源,并根据资源的改动自动更新。Unity 3D支持几乎所有主流的三维格式,如3ds Max、Maya、Blender等,贴图材质自动转换为U3D格式,并能和大部分相关应用程序协调工作。
4. 一键部署
Unity 3D只需一键即可完成作品的多平台开发和部署,让开发者的作品在多平台呈现。
5. 脚本语言
Unity 3D集成了MonoDeveloper编译平台,支持C#、JavaScript和Boo 3种脚本语言,其中C#和JavaScript是在游戏开发中最常用的脚本语言。
6. 联网
Unity 3D支持从单机应用到大型多人联网游戏的开发。
7. 着色器
Unity 3D着色器系统整合了易用性、灵活性、高性能。
8. 地形编辑器
Unity 3D内置强大的地形编辑系统,该系统可使游戏开发者实现游戏中任何复杂的地形,支持地形创建和树木与植被贴片,支持自动的地形LOD、水面特效,尤其是低端硬件亦可流畅运行广阔茂盛的植被景观,能够方便地创建游戏场景中所用到的各种地形。
9. 物理特效
物理引擎是模拟牛顿力学模型的计算机程序,其中使用了质量、速度、摩擦力和空气阻力等变量。Unity 3D内置NVIDIA的PhysX物理引擎,游戏开发者可以用高效、逼真、生动的方式复原和模拟真实世界中的物理效果,例如碰撞检测、弹簧效果、布料效果、重力效果等。
10. 光影
Unity 3D提供了具有柔和阴影以及高度完善的烘焙效果的光影渲染系统。
1.1.2 Unity 3D的发展
2004年,Unity 3D诞生于丹麦的阿姆斯特丹。
2005年,发布了Unity 1.0版本,此版本只能应用于Mac平台,主要针对Web项目和VR(虚拟现实)的开发。
2008年,推出Windows版本,并开始支持iOS和Wii,从众多的游戏引擎中脱颖而出。
2009年,荣登2009年游戏引擎的前五,此时Unity的注册人数已经达到了3.5万。
2010年,Unity 3D开始支持Android,继续扩大影响力。
2011年,开始支持PS3和XBox360,此时全平台的构建完成。
2012年,Unity Technologies公司正式推出Unity 4.0版本,新加入对于DirectX 11的支持和Mecanim动画工具,以及为用户提供Linux及Adobe Flash Player的部署预览功能。
2013年,Unity 3D引擎覆盖了越来越多的国家,全球用户已经超过150万,Unity 4.0引擎已经能够支持在包括MacOS X、Android、iOS、Windows等在内的10个平台上发布游戏。同时,Unity Technologies公司CEO David Helgason发布消息称,游戏引擎Unity 3D今后将不再支持Flash平台,且不再销售针对Flash开发者的软件授权。
2014年,发布Unity 4.6版本,更新了屏幕自动旋转等功能。
2016年,发布Unity 5.4版本,专注于新的视觉功能,为开发人员提供了最新的理想实验和原型功能模式,极大地提高了其在VR画面展现上的性能。
1.1.3 Unity 3D的应用
Unity 3D是目前主流的游戏开发引擎,有数据显示,全球最赚钱的1000款手机游戏中,有30%是使用Unity 3D开发出来的。尤其在VR设备中,Unity 3D游戏开发引擎具有统治地位。Unity 3D能够创建实时、可视化的2D和3D动画、游戏,被誉为3D手游的传奇,孕育了成千上万款高质、超酷炫的神作,如《炉石传说》《神庙逃亡2》《我叫MT2》等。Unity 3D行业前景广泛,在游戏开发、虚拟仿真、动漫、教育、建筑、电影等多个行业中得到广泛运用。
1. 在游戏中的应用
3D游戏是Unity游戏引擎重要的应用方向之一,从最初的文字游戏到二维游戏、三维游戏,再到网络三维游戏,游戏在其保持实时性和交互性的同时,其逼真度和沉浸感在不断地提高和加强。图1.1为Unity官方发布的3D游戏AngryBots的试玩版(demo)。随着三维技术的快速发展和软硬件技术的不断进步,在不远的将来,3D虚拟现实游戏必将成为主流游戏市场应用方向。
图1.1 AngryBots游戏试玩版效果
2. 在虚拟仿真教育中的应用
Unity 3D应用于虚拟仿真教育是教育技术发展的一个飞跃,如图1.2所示。它营造了自主学习的环境,由传统的“以教促学”的学习方式变为学习者通过自身与信息环境的相互作用来得到知识、技能的新型学习方式。
图1.2 Unity 3D在虚拟仿真教育中的应用
3. 在军事与航天工业中的应用
模拟训练一直是军事与航天工业中的一个重要课题,这为Unity 3D提供了广阔的应用前景,如图1.3所示。美国国防部高级研究计划局(DARPA)自20世纪80年代起一直致力于SIMNET的虚拟战场系统的研究,以提供坦克协同训练,该系统可连接200多台模拟器。另外,该系统利用VR技术,可模拟零重力环境,以代替现在非标准的水下训练宇航员的方法。
图1.3 Unity 3D在军事领域中的应用
4. 在室内设计中的应用
Unity 3D引擎可以实现虚拟室内设计效果,它不仅仅是一个演示媒体,而且还是一个设计工具。它以视觉形式反映了设计者的思想。在装修房屋之前,首先要做的事是对房屋的结构、外形做细致的构思。为了使之定量化,还需设计许多图纸,当然这些图纸只有内行人能读懂。虚拟室内设计可以把这种构思变成看得见的虚拟物体和环境,使以往传统的设计模式提升到数字化的所见即所得的完美境界,大大提高了设计和规划的质量与效率。
虚拟室内设计方案应用Unity 3D引擎进行开发,设计者可以完全按照自己的构思去构建和装饰虚拟的房间,并可以任意变换自己在房间中的位置,去观察设计的效果,直到满意为止,既节约了时间,又节省了做模型的费用,如图1.4所示。
图1.4 Unity 3D在室内设计中的应用
5. 在城市规划中的应用
城市规划一直是对全新的可视化技术需求最为迫切的领域之一,利用Unity 3D引擎可以进行虚拟城市规划,并带来切实且可观的利益:展现规划方案时,虚拟现实系统的沉浸感和互动性不但能够给用户带来强烈、逼真的感官冲击,使用户获得身临其境的体验,还可以通过其数据接口在实时的虚拟环境中随时获取项目的数据资料,方便大型复杂工程项目的规划、设计、投标、报批、管理,有利于设计与管理人员对各种规划设计方案进行辅助设计与方案评审,如图1.5所示。
图1.5 Unity 3D在城市规划中的应用
6. 在工业仿真中的应用
当今世界工业已经发生了巨大的变化,先进科学技术的应用显现出巨大的威力。Unity 3D引擎已经被世界上一些大型企业广泛地应用到工业仿真的各个环节,对企业提高开发效率,加强数据采集、分析、处理能力,减少决策失误,降低企业风险起到了重要的作用,如图1.6所示。
7. 在文物古迹展示、保护中的应用
利用Unity 3D引擎,结合网络技术,可以将文物古迹的展示、保护提高到一个崭新的阶段。首先表现在将文物古迹实体通过影像数据采集手段建立三维实物或模型数据库,保存文物古迹原有的各种形式的数据和空间关系等重要资源,实现濒危文物古迹资源的科学、高精度和永久的保存。其次,利用这些技术来提高文物修复的精度,预先判断、选取将要采用的保护手段,同时可以缩短修复工期。通过计算机网络来整合统一大范围内的文物古迹资源,并且通过网络在大范围内利用虚拟技术更加全面、生动、逼真地展示文物古迹,从而使文物古迹脱离地域限制,实现资源共享,真正成为全人类可以拥有的文化遗产,如图1.7所示。利用Unity 3D引擎实现虚拟文物古迹仿真可以推动文博行业更快地进入信息时代,实现文物古迹展示和保护的现代化。
图1.6 Unity 3D在工业仿真中的应用
图1.7 Unity 3D在文物古迹展示和保护中的应用