Unity43D开发实战详解(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-15 08:57:43

点击下载

作者:吴亚峰杜化美张月霞索依娜编著

出版社:信息技术第一出版分社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Unity43D开发实战详解

Unity43D开发实战详解试读:

内容提要

随着Unity 3D的迅猛发展,该游戏引擎通过不断优化与改进已经升级到 4.0。在Unity 4.0中增加了许多新的特性,如全新的动画系统、支持移动平台的实时阴影、最新的状态机技术等。本书随着游戏引擎的升级加入了许多新的内容,主要内容如下。

第1章 Unity 3D基础以及开发环境的搭建,简要介绍了Unity 3D开发环境的搭建及其运行机制;第2章 Unity集成开发环境详解,主要对Unity集成开发环境进行详细介绍;第 3章 Unity 3D开发脚本简介,讲解了特定于Unity的 JavaScript脚本和C#脚本编写的语法和技巧;第 4章 Unity 3D图形用户界面基础及常用对象,主要对Unity开发过程中经常使用的图形用户界面控件及对象进行详细介绍;第 5章 Unity 3D第三方2D组件库——NGUI,介绍了游戏开发中非常流行的第三方UI界面开发组件库——NGUI的知识;第 6 章 物理引擎,介绍了 Unity 开发平台的完整的物理引擎体系,包括刚体、碰撞器、粒子系统及关节等开发技术;第 7章 3D游戏开发技术,介绍了天空盒、虚拟按钮与摇杆、声音、光源、地形引擎、角色动画,以及角色控制器等常用技术;第 8 章 着色器——Shaders,介绍了 Unity 中的着色器和着色器语言——ShaderLab,为各种高级特效的开发打下良好的基础;第9章杂项,介绍了PlayerPrefs类、Network Class(网络类)、加速度传感器的使用、视频贴图等开发技巧;第10章 综合案例——火力篮球,详细介绍了火力篮球项目的开发过程及用到的各种相关技术;第11章 综合案例——3D保龄球,详细介绍了3D保龄球项目的开发过程及用到的各种相关技术。前言为什么要写这样的一本书

近几年,Android平台游戏、iPhone平台游戏以及Web的网页游戏发展迅猛,已然成为带动游戏发展的新生力量。遗憾的是,目前除了少数的成功作品外,大部分的游戏都属宣传攻势大于内容品质的平庸之作。面对这种局面,3D游戏成为独辟蹊径的一种选择,而为3D游戏研发提供强大技术支持的Unity 3D引擎,以其创造高质量的3D游戏和真实视觉效果的核心技术,为开发3D游戏提供了强大的源动力。

Unity 3D是由Unity Technologies开发的一个轻松创建三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

本书通过对Unity 3D集成开发环境的搭建、集成开发环境各个界面的详细介绍,再到脚本的编写、开发过程经常应用的技术和对象的讲解,以及最后用两个经典案例进行实战介绍,给读者以由浅入深、循序渐进的学习过程,相信每一位读者都会通过本书得到意想不到的收获。

未来几年内必定是Unity 3D大行其道的时代,因其开发群体的迅速扩大,Web player装机率的快速上升,使Unity 3D迅速爆发的时机已经到来。在此引用业内知名人士的一句话:“不要再对所谓的Flash 3D抱有什么希望,也不要再去花心思学习那些杂七杂八的Flash 3D插件,赶紧学习Unity 3D才是正经。”

由于最近几年Unity 3D的迅猛发展,该游戏引擎通过不断地优化与改进已经升级到 4.0。在Unity 4.0中增加了许多新的特性,如全新的动画系统、支持移动平台的实时阴影、最新的状态机技术等。本书也随着该游戏引擎的升级加入了许多新的内容。

经过半年多见缝插针式的奋战,本书终于交稿了。回顾写书的这半年多时间,不禁为自己能最终完成这个耗时费力的“大制作”而感到欣慰。同时也为自己能将从事游戏开发近十年来积累的宝贵经验以及编程感悟分享给正在开发阵线上埋头苦干的广大编程人员而感到高兴。

本书特点

1.内容丰富,由浅入深

本书组织上本着“起点低,终点高”的原则,内容覆盖了从学习Unity 3D必知必会的基础知识,到基于着色器语言所实现的高级特效,最后还给出了两个完整的大型 3D 游戏案例。这样的内容组织使得初学3D开发的读者可以一步一步成长为3D开发的达人,符合绝大部分想学习3D开发的学生与技术人员,以及正在学习3D开发人员的需求。

2.结构清晰,讲解到位

本书中配合每个需要讲解的知识点都给出了丰富的插图与完整的案例,使得初学者易于上手,有一定基础的读者便于深入。书中所有的案例均是根据笔者多年的开发心得进行设计的,结构清晰明朗,便于读者进行学习与参考。同时书中还给出了笔者多年来积累的编程技巧以及心得,具有很高的参考价值。

3.实用的光盘内容

为了便于读者的学习,本书附赠的光盘中包含了书中所有案例的完整源代码,最大限度地帮助读者掌握开发技术。

内容导读

全书共分为11章,内容按照必知必会的基础知识、基于Unity集成开发环境及真实大型游戏案例的顺序进行详细讲解。

本书内容从基本知识到高级特效,从简单的应用程序到完整的3D游戏案例,适合不同需求、不同水平层次的各类读者。

● 初学Unity 3D应用开发的读者

本书包括在 Android 平台下进行 3D 应用开发各方面的知识,内容由浅入深,配合详细的案例。非常适合初学者循序渐进地学习,最终成为3D游戏应用开发达人。

● 有一定 3D开发基础读者,可以进一步深入学习Unity 3D高级开发技术

本书不仅包括了Unity 3D开发的基础知识,同时也包括基于着色器语言、关节、动画等技术所实现的高级特效,以及Unity 3D强大的物理引擎与完整的游戏案例,有利于有一定基础的开发人员进一步提高开发水平与能力。

● 其他平台的3D开发人员

由于Unity 3D是跨平台的,可以开发基于各个平台的项目,因此,适合其他各种平台的 3D开发人员。

本书作者

吴亚峰,毕业于北京邮电大学,后留学澳大利亚卧龙岗大学取得硕士学位。1998年开始从事Java应用的开发,有十多年的 Java开发与培训经验。主要的研究方向为OpenGL ES、手机游戏、Java EE以及搜索引擎。同时为手机游戏、Java EE独立软件开发工程师,并兼任百纳科技 Java培训中心首席培训师。近十年来为多家著名企业培养了上千名高级软件开发人员,曾编写过《菜鸟成长之路——Java程序员职场全攻略》、《Android 3D游戏案例开发大全》、《Android平板电脑开发实战详解和典型案例》、《Android游戏开发大全》、《Android应用案例开发大全》、《Unity 3D游戏开发技术详解与典型案例》等多本畅销技术书籍。2008年年初开始关注Android平台下的应用开发,并开发出一系列优秀的Android 3D应用程序与游戏。

杜化美,西安电子科技大学硕士,有多年的Java程序开发与培训经验。曾参与两项国家自然科学基金项目,在国内外刊物上发表论文十余篇。同时兼任嵌入式独立软件开发工程师,在软件领域有8年的从业经验,最近3年致力于Android嵌入式系统的研究。

张月霞,博士,毕业于北京邮电大学。主要从事无线协同通信技术、超宽带技术、无线定位技术、移动互联网等技术研究。主持省部级项目1项,参与国家自然科学基金重大项目两项,发表论文十余篇,申请国家专利7项,编著1部,译著1部。2012年获北京市教学成果奖一等奖, 2013年获吴文俊人工智能科学奖三等奖。从2010年开始致力于Android系统开发,参与开发了多款手机应用软件。

索依娜,毕业于燕山大学,从业于计算机软件领域十余年,在软件开发与计算机教学方面有着丰富的经验。工作期间曾参与省级科研项目两项,发表论文多篇。从2008年起开始关注Android平台下的应用开发,参与开发了多款手机娱乐应用。

本书在编写过程中得到了唐山百纳科技有限公司Java培训中心的大力支持,同时刘文洲、陈伟、赵鑫磊、谷新蕾、佘伟伟、刘喆、刘敏智、董振宇以及作者的家人为本书的编写提供了很多帮助,在此表示衷心的感谢!光盘中包括所有源程序。

由于编者的水平和学识有限,且书中涉及的知识较多,难免有错误疏漏之处,敬请广大读者批评指正,并提出宝贵意见。编辑联系邮箱为zhangtao@ptpress.com.cn。编者第1章Unity 3D基础以及开发环境的搭建

本章主要向读者介绍Unity 3D的相关知识以及Unity集成开发环境的搭建,通过本章的学习,读者会对Unity 3D有一个大致的了解。1.1 Unity 3D基础知识概览

本节主要向读者介绍Unity 3D的相关知识,主要内容包括Unity 3D的简介、Unity 3D的发展和Unity 3D的特点等。通过本节的学习,读者将对Unity 3D有一个基本的认识。1.1.1 初识Unity 3D

Unity 3D是由Unity Technologies开发的一个轻松创建三维视频游戏、建筑可视化、实时三维动画等互动内容的、多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

Unity类似于Director、Blender Game Engine、Virtools或Torque Game Builder等利用交互的图形化开发环境为首要方式的软件。

其编辑器运行在Windows和Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone和Android平台,也可以利用Unity Web Player插件发布网页游戏,支持Mac和Windows的网页浏览,并且Unity的网页播放器也被Mac Widgets所支持。1.1.2 Unity的诞生及发展

通过前面小节的学习,相信读者对Unity有了一个简单的认识。而本小节为了让读者对Unity有更进一步的了解,将为读者介绍Unity的发展史。

● 2005年6月,Unity 1.0发布。Unity 1.0是一个轻量级、可扩展的依赖注入容器,有助于构建松散耦合的系统。它支持构造子注入(Constructor Injection)、属性 /设值方法注入(Property/Setter Injection)和方法调用注入(Method Call Injection)。

● 2009年3月,Unity 2.5加入了对Windows的支持。Unity发展到2.5完全支持Windows Vista与Windows XP的全部功能和互操作性,而且Mac OS X中的Unity编辑器也已经重建,在外观和功能上都相互统一。Unity 2.5的优点就是Unity 3D可以在任一平台建立任何游戏,实现了真正的跨平台。

● 2009年 10月,Unity 2.6独立版开始免费。Unity 2.6支持了许多的外部版本控制系统,例如Subversion、Perforce、Bazaar,或是其他的VCS系统等。除此之外,Unity 2.6与Visual Studio完整的一体化也增加了Unity自动同步Visual Studio项目的源代码,实现所有脚本的解决方案和智能配置。

● 2010年9月,Unity 3.0支持多平台。新增加的功能有:方便编辑桌面左侧的快速启动栏、增加支持Ubuntu 12.04、更改桌面主题和在 dash中隐藏“可下载的软件”类别等。

● 2012年2月,Unity Technologies发布Unity 3.5。纵观其发展历程,Unity Technologies公司一直在快速强化Unity,Unity 3.5版提供了大量的新增功能和改进功能。所有使用Unity 3.0或更高版本的用户均可免费升级到Unity 3.5。

● 2012年11月,Unity Technologies公司正式推出Unity 4.0版本,新加入对DriectX 11的支持和全新的Mecanim动画工具,支持移动平台的动态阴影,减少移动平台Mesh内存消耗,支持动态字体渲染,以及为用户提供Linux及Adobe Flash Player的部署预览功能。1.1.3 Unity 3D广阔的市场前景

近几年来,Android平台游戏、iPhone平台游戏以及Web的网页游戏发展迅猛,已然成为带动游戏发展的新生力量。遗憾的是目前除了少数的作品成功外,大部分的游戏都属宣传攻势大于内容品质的平庸之作。

面对这种局面,3D 游戏成为独辟蹊径的一种选择,而为 3D 游戏研发提供强大技术支持的Unity 3D引擎,以其创造高质量的3D游戏和真实视觉效果的核心技术,为开发3D游戏提供了强大的源动力。提示

Unity 3D游戏引擎后来居上,在2012年发行的几款风靡一时的 iPhone和Android平台上的游戏都选择了这款游戏引擎,如《神庙逃亡2》、《滑雪大冒险》、《暗影之枪》等。

Unity 3D不仅在游戏领域里有广阔的应用,其还可以用于 3D虚拟仿真、大型产品 3D展示、3D虚拟展会、3D场景导航以及一些精密仪器使用方法的演示等,可谓领域非常广泛。

Unity 3D游戏引擎技术研讨会最早于 2011年5月在韩国举行。据悉,现在10种以上的新引擎开发,都是采用了Unity 3D游戏引擎技术。现已有部分开发商利用China Joy展会的契机,展示了该引擎的运行效果,目前已有不少厂商与开发商签订了提前预定引擎的协议。提示

Unity引擎可以帮助开发人员制作出炫丽的3D效果,并实时生成查看,目前已推出了对应 iPhone、iPad、PC、Mac、Android、Flash Player、Wii、PS3、Xbox360等平台的版本,促进了游戏跨平台的应用。读者要做的只是在编辑器中选择使用哪一个平台来预览游戏作品。

未来几年内必定是Unity 3D大行其道的时代,因其开发群体的迅速扩大,Web Player装机率的快速上升,使Unity 3D迅速爆发的时机已经到了。

在此引用业内知名人士的一句话:“不要再对所谓的 Flash 3D抱有什么希望,也不要再去花心思学习那些杂七杂八的Flash 3D插件,赶紧学习Unity 3D才是正经。”1.1.4 独具特色的Unity 3D

通过前面两个小节的学习,相信读者对Unity 3D有了一个基本的认识,本小节将为读者介绍Unity 3D的特点,帮助读者进一步学习Unity 3D。1.Unity 3D本身所具有的特点

● 综合编辑

Unity 简单的用户界面是层级式的综合开发环境,具备视觉化编辑、详细的属性编辑器和动态的游戏预览特性。由于其强大的综合编辑特性,因此,Unity 也被用来快速地制作游戏或者开发游戏原型,如图1-1所示。▲图1-1 综合编辑

● 图形引擎

Unity的图形引擎使用的是Direct3D(Windows)、OpenGL(Mac,Windows)和自有的APIs (Wii)。可以支持Bump mapping、Reflection mapping、Parallax mapping、Screen Space Ambient Occlusion、动态阴影所使用的Shadow Map技术与Render-to-texutre和全屏 Post Processing 效果。

● 资源导入

项目中的资源会被自动导入,并根据资源的改动自动更新。虽然很多主流的三维建模软件为Unity所支持,不过对于3ds Max、Maya、Blender、Cinema 4D和Cheetah3D的支持比较好,并支持一些其他的三维格式。

● 一键部署

Unity可开发微软Microsoft Windows和Mac OS X 的可执行文件,在线内容通过Unity Web Player插件支持 Internet Explorer、Firefox、Safari、Mozilla、Netscape、Opera和 Camino、Mac OS X的Dashboard工具,但是Wii程序和iPhone应用程序的开发需要用户购买额外的授权,在价格上有所不同,如图1-2所示。▲图1-2 一键部署

● 着色器(shaders)

shaders编写使用ShaderLab语言,同时支持自有工作流中的编程方式或Cg.GLSL语言编写的shader。

一个shader可以包含众多变量及一个参数接口,允许Unity去判定参数是否为当前所支持并适配最适合参数,并选择相应的 shader 类型以获得广大的兼容性。因此,Unity 的着色器系统具有易用、灵活和高性能的特性。

● 地形编辑器

Unity 内建强大的地形编辑器,支持地形创建和树木与植被贴片,而且还支持水面特效,尤其是低端硬件亦可流畅运行广阔茂盛的植被景观,如图1-3和图1-4所示。▲图1-3 地形 1▲图1-4 地形 2

● 联网

现在大部分的游戏都是联网的,令人惊喜的是,Unity 内置了强大多人联网游戏引擎,具有Unity 自带的客户端和服务器端,省去了并发、多任务等一系列繁琐而困难的操作,可以简单地完成所需的任务。其多人网络连线采用Raknet,可以从单人游戏到全实时多人游戏。

● 物理特效

物理引擎是一个计算机程序模拟牛顿力学模型,使用质量、速度、摩擦力和空气阻力等变量。其可以用来预测各种不同情况下的效果。Unity内置NVIDIA强大的PhysX物理引擎,可以方便、准确地开发出所需要的物理特效。

PhysX可以由CPU计算,但其程序本身在设计上还可以调用独立的浮点处理器(如GPU和PPU)来计算,也正因为如此,它可以轻松完成像流体力学模拟那样的大计算量的物理模拟计算。并且PhysX物理引擎还可以在包括Windows、Linux、Xbox360、Playstation3、Mac、Android 等在内的全平台上运行。

● 音频和视频

音效系统基于OpenAL程式库,可以播放Ogg Vorbis的压缩音效,视频播放采用Theora编码,并支持实时三维图形混合音频流和视频流。

OpenAL 主要的功能是在来源物体、音效缓冲和收听者中编码。来源物体包含一个指向缓冲区的指标、声音的速度、位置和方向,以及声音强度。收听者物体包含收听者的速度、位置和方向,以及全部声音的整体增益。缓冲里包含 8或 16位元、单声道或立体声 PCM格式的音效资料,表现引擎进行所有必要的计算,如距离衰减、多普勒效应等。

● 脚本

游戏脚本为基于Mono的Mono脚本,是一款基于.NET Framework的开源语言,因此,程序员可用JavaScript 、C#或Boo加以编写,如图1-5所示。提示

由于JavaScript和C#脚本语言是目前Unity开发中比较流行的语言,同时,考虑到脚本语言的通用性,因此,本书采用JavaScript和C#两种脚本语言交叉编写脚本,给读者带来更多的选择。

● Unity资源服务器

Unity资源服务器具有一个支持各种游戏和脚本版本的控制方案,使用PostgreSql作为后端。其可以保证在开发过程中多人并行开发,保证不同的开发人员在使用不同版本的开发工具所编写的脚本能够顺利的集成。▲图1-5 脚本

● 真实的光影效果

Unity 提供了具有柔和阴影与 lightmaps 的高度完善的光影渲染系统。光照图(lightmap)是包含了视频游戏中面的光照信息的一种三维引擎的光强数据。光照图是预先计算好的,而且要用在静态目标上。说明

静态目标 static objects在三维引擎里是区别于动态目标 dynamic object的一种分类。2.Unity 3D的跨平台特性

Unity类似于Director、Blender game engine、Virtools或Torque Game Builder等利用交互的图形化开发环境为首要方式的软件。其编辑器运行在 Windows 和 Mac OS X 下,可发布游戏至Windows、Mac、Wii、iPhone和Android平台,也可以利用Unity Web Player插件发布网页游戏,支持Mac 和Windows的网页浏览。

现在市面上已经推出了很多由Unity开发的基于Android平台、iPhone平台以及大型的3D网页游戏,这些游戏都得到了很高评价。接下来将分别为读者介绍这3类游戏。

● 基于Android平台的游戏

Unity可以基于Android平台进行游戏开发,由于其自身存在的优势,因此开发的游戏也让人赏心悦目,赞不绝口。

例如,《捣蛋猪》是Rovio Entertainment继《愤怒的小鸟》之后的又一款力作,如图 1-6所示;由Madfinger Games开发的《暗影之枪》,如图1-7所示;由 Infinite Dreams开发的 Jelly Defense,如图 1-8所示;由MADFINGER Games开发的Samurai II: Vengeance,如图 1-9所示。▲图1-6 《捣蛋猪》▲图1-7 暗影之枪

● 基于iPhone平台的游戏

Unity依然可以基于iPhone平台进行游戏开发,由于其自身存在的优势,可以制作出绚丽多彩的iPhone平台游戏。▲图1-8 JellyDefense▲图1-9 SamuraiⅡ:Vengeance

例如,由 Imangi Studios开发的跑酷类视频游戏《神庙逃亡 2》,如图 1-10所示;由Defiant Development Pty.Ltd开发的Ski Safari,如图1-11所示;由NaturalMotion Games Limited开发的CSR Racing,如图1-12所示;由Crescent Moon Games LLC开发的Slingshot Racing,如图1-13所示。▲图1-10 神庙逃亡 2▲图1-11 Ski Safari▲图1-12 CSR Racing▲图1-13 Slingshot Racing

● 基于Web的大型3D网页游戏

同样Unity也可以开发基于Web的大型3D网页游戏,网页类游戏不用下载客户端,也是近几年比较流行的一种游戏类型,市面上已经推出了很多这样的3D网页游戏。

例如《胸怀三国志》是Ndoors公司的最新力作,如图 1-14所示;由Roadhouse Interactive开发的MechWarrior Tactics,如图1-15所示;《木乃伊OL》是由开发商Bigpiont开发的一款全新网页游戏,如图1-16示;《蒸汽之城》是厦门梦加网络科技有限公司开发的一款3D网页MMORPG,如图1-17所示。▲图1-14 《胸怀三国志》▲图1-15 MechWarrior Tactics

Unity 3D基础知识到这里介绍完毕,接下来将详细介绍Unity中开发环境的搭建,这是进行Unity 3D开发的第一步。▲图1-16《木乃伊OL》▲图1-17 《蒸汽之城》1.2 开发环境的搭建

本节介绍Unity集成开发环境的搭建,开发环境的搭建分为两个步骤:Unity集成开发环境的安装和目标平台的SDK与Unity 3D的集成。1.2.1 Unity集成开发环境的安装

本小节主要讲述如何构建Unity 3D的开发环境,之后对开发环境进行测试并创建第一个Unity 3D程序。前面已经对Unity 3D这个游戏引擎进行了简单的介绍,从本小节开始,将带领读者逐步搭建自己的开发环境,具体的步骤如下。(1)登录到Unity官方网站http://unity3d.com/unity/download下载最新的Unity安装程序,如图 1-18所示。单击“Download Unity 4.0.1”按钮下的“Looking for an older version?”超链接进入Unity 4.0老版本的下载页面,然后单击“Win”超链接下载Android平台下的Unity安装程序,如图1-19所示。(2)若想下载 iPhone平台下的Unity 4.0.0安装程序,单击“Mac”超链接即可下载,如图 1-20所示。▲图1-18 Unity 4.0老版本的官方下载链接(3)双击所下载的Unity安装程序UnitySetup-4.0.0.exe,根据提示将Unity安装到默认目录,如图1-21所示。▲图1-19 Android平台下Unity的官方下载▲图1-20 iPhone平台下Unity的官方下载▲图1-21 Unity安装程序的安装提示

本书采用的版本为UnitySetup-4.0.0。(4)双击完UnitySetup-4.0.0.exe,会自动跳转到Welcome to the Unity 4.0.0f7 Setup界面,单击“Next”按钮进入License Agreement界面,如图 1-22所示。(5)在License Agreement界面,单击“I Agree”按钮进入Choose Components界面,如图1-23所示。(6)在Choose Components界面,全部选中并单击“Next”按钮进入Choose Install Location界面,如图1-24所示。(7)在Choose Install Location界面,选择好安装路径(本书以默认路径为例),单击“Install”按钮进行安装,并进入Installing界面,如图1-25所示。▲图1-22 Welcome to the Unity 4.0.0f7 Setup界面▲图1-23 License Agreement界面▲图1-24 Choose Components界面▲图1-25 Choose Install Location界面(8)进入 Installing 界面后(这是 Unity 的安装过程),会需要一定的时间,请耐心等待,如图1-26所示。(9)安装结束,会跳转到Finsh界面,单击“Finsh”按钮即可,此时桌面上会出现一个Unity.exe的图标,如图1-27和图1-28所示。▲图1-26 Installing界面▲图1-27 Finsh界面(10)双击桌面上Unity.exe快捷方式,将会跳转到License注册界面,勾选“Activate a free 30-day trial of Unity Pro”选项,然后单击“OK”按钮进入Log into your Unity Account界面,如图1-29所示。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载