Unity 2017经典游戏开发教程:算法分析与实现(txt+pdf+epub+mobi电子书下载)


发布时间:2020-11-16 08:00:32

点击下载

作者:张帆

出版社:人民邮电出版社

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

Unity 2017经典游戏开发教程:算法分析与实现

Unity 2017经典游戏开发教程:算法分析与实现试读:

前言

我第一次接触Unity游戏引擎是在2008年,当时是导师扈文峰教授推荐给我,并引导我往这个方向去研究其应用的。在那时Unity没有太多的参考资料,外文的参考资料及教程也甚少。为了研究其应用,我只能通过官方的文档以及其入门视频进行学习、研究。

Unity是以组件(Components)的方式来组织游戏逻辑的,它可随意装配、对修改封闭而又对扩展开放的优越性,使得我开始意识到该软件将前途无量。本着更深入研究的目的,我在中国传媒大学继续完成了全日制研究生学习,在学习期间,对Unity的研究一直在持续。

回想起我开始接触Unity,到我毕业后来浙江传媒学院任教,整整7个年头。在这7年当中,Unity不断升级,由最初的2.5版本,到2.6版本、3.0版本、3.5版本、4.0版本,再到本书截稿时的2017版本,每一次的版本升级都给用户带来了令人惊讶的新功能。它的一站式多平台开发,方便的编辑工具和编辑思路,对各种图形的渲染优化,物理引擎、动画状态机,灵活开放的实现方式以及丰富的脚本API等,是我持续不断地对它进行研究和学习的动力源泉。现在我所承担的课程(游戏算法基础、游戏脚本编程、游戏引擎原理和游戏实战开发等)基本上都使用Unity作为教学工具。

承担“游戏算法基础”课程之初,曾选用Java、C++等编程语言的教材,但在上课的过程中发现,这些语言需要自行实现许多细节,导致游戏相关算法的精粹被这些琐碎的细节所掩盖,也令学生失去了对这门课程的兴趣,效果自然大打折扣,所以尝试使用Unity游戏引擎来重新实现这些游戏算法,尽可能使技术细节变得透明,让学生能够更加关注算法本身。经过多次课程的实验和总结,利用成熟的游戏引擎来讲授游戏的算法,可达到事半功倍的效果。由于目前市面上没有关于这方面的书籍,因此觉得有必要把这些课的教案和经验进行整理并作为教材出版,同时借此与全国讲授游戏相关的老师和行业一线游戏设计开发同行建立更密切的交流机会。

本书的编写总体目标是深入浅出,尽量聚焦于游戏算法的分析和实现。第1章主要对Unity游戏引擎的功能进行简要介绍,并配有视频教程。从第2章开始则讲解如何在Unity引擎中实现经典游戏的算法,包括打地鼠、俄罗斯方块、打砖块、三消、翻牌子、连连看、拼图、推箱子、炸弹人、华容道、跑酷、扫雷、贪吃蛇、五子棋、跳棋、吃豆人、扑克、坦克大战等18个游戏。由于作者水平和学识有限,再加上时间仓促,书中错误疏漏之处在所难免,敬请广大读者批评指正。如有疑问,可与我联系,邮箱是Zf223669@126.com。

如果作为教学用书,建议课时不少于64(每周4节)或48(每周3节)课时。每周前2节课用于讲授算法理论思路,后2节课可用于学生的实践练习。此外,本书除了可以作为高校相关专业的教材之外,还可以作为行业一线游戏开发人员的参考书。致谢

感谢我的导师,中国传媒大学计算机学院扈文峰教授对我在学期间的指导。由衷地感谢浙江传媒学院新媒体学院的领导和同事们,是他们为我这本书的编著提供了良好的工作环境和支持。感谢我的学生黄旭晨、刘梦、王晓霞、阮芳、卓文玲、郁琦、马邦进、陈涵、唐萌、王建敏、何亚泽,很多材料的收集、整理和校对都是在他们的帮助下完成的。还要感谢我的父母和妻子李舜曼,在你们的默默支持和鼓励下,让我能有更多的精力投身到这本书的编写上。张帆2018年5月于浙江传媒学院本书编委会

主 编:张帆 邵兵

副主编:潘瑞芳 周忠成 徐芝琦 谢昊

特约顾问:扈文峰

编 委:黄旭晨 刘梦 王晓霞 阮芳 卓文玲 陈涵 郁琦 马邦进 唐萌 王建敏 何亚泽本书编委简介

主编张帆,男,广东省潮州人,硕士研究生,毕业于中国传媒大学计算机学院计算机应用技术(数字娱乐与动画技术方向)专业。目前担任浙江传媒学院新媒体学院数字媒体技术专业(数字游戏设计方向)专业讲师、副主任。研究方向为数字娱乐互动技术与数字游戏设计。承担国家自然基金(青年基金项目)1项,浙江省科技厅公益项目1项,发表论文8篇。讲授课程有游戏算法基础、游戏策划与关卡设计、游戏脚本编程、游戏引擎原理和游戏实战开发等。多次带领学生参加全国游戏设计相关比赛并获嘉奖。所著书籍有《手机游戏的设计开发》《Unity3D游戏引擎入门》《游戏策划与设计》等。曾获校级“三育人先进工作者”“学科竞赛和科技创新评优优秀指导教师”“卓越产学研创新成果奖”等光荣称号。

主编邵兵,男,吉林艺术学院新媒体学院副院长兼数字娱乐系主任、教授、硕士生导师,中华人民共和国文化部游戏产业专家委员会候补委员、中国图形图像协会数码艺术委员会委员、中国国际游戏设计教育联盟秘书长、CIEOG中国国际游戏设计教育高峰论坛发起人。多年从事数字艺术创作,个人游戏动画作品多次获国际大奖,出版游戏设计相关领域研究专著2部,教材5本。承担多项国家级和省级重点科研项目。多次出席国家级峰会论坛并做演讲。受邀参加工业和信息化部、科技部、国家广播电视总局联合主办的2017ChinaJoy游戏开发大会作主题演讲引起广泛关注和好评。2017年受文化部邀请参加游戏产业与发展座谈会并作为学界代表发言。

副主编潘瑞芳,女,江西南昌人,硕士,教授,全国广播电影电视标委会委员,中国动漫艺术陈列馆专家指导委员会委员,中国动画学会教育委员会委员,计算机学会理事。现为浙江传媒学院教授,新媒体研究所所长,国家动画教学基地副主任。主要研究领域为数字媒体、计算机动画及数据库技术研究等。主持完成国家广播电视总局项目、浙江省自然科学基金项目、浙江省科技厅等项目;在研有科技部项目、国家广播电视总局项目、浙江省新世纪教改项目及杭州市市级项目等。发表论文60余篇,获国家软件著作权登记2部,编撰出版著作3部,主编高校计算机类教材5部,获省级优秀教材一等奖1项,导演的两部三维动画短片均获中国国际动漫节美猴奖提名。

副主编周忠成,教授,男,浙江东阳人。毕业于吉林大学研究生院,现任浙江传媒学院新媒体学院副院长。中国广播电视学会会员。曾获浙江传媒学院校中青年学科带头人、校“师德标兵”“三育人先进工作者”等荣誉。发表核心刊物论文十余篇,出版《数字音频制作技艺》等专著或教材3部,主持《基于草图的动漫玩具设计和制作系统的开发与应用》省级项目,主持《非线性编辑》省级精品课程项目,主持及参与其他各类项目10项。论文《影视后期制作中的数字色彩校正》获2011年度中国电影电视技术学会影视科技优秀论文三等奖。

副主编徐芝琦,女,浙江传媒学院新媒体学院教师,现任公共计算机教学部主任。1999年进入浙江大学,度过了本科、硕士和博士研究生的学习阶段,于2008年获得了计算机应用技术专业的博士学位。2008年至2012年曾在华南理工大学计算机科学与工程学院及广东省计算机网络重点实验室工作。目前的主要研究方向为基于游戏的学习、可视化编程与计算思维、数字交互艺术与技术等。中国高校虚拟现实产业联盟成员。主持并参与了多项国家、省部级科研项目以及教学改革项目,发表高水平索引论文若干篇。指导大学生各级创新基金和新苗人才计划项目近10项,带领学生参加移动应用开发大赛、全国计算机设计大赛、浙江省多媒体设计大赛等,获得多个全国一等奖、二等奖以及省级奖项。多次获得校级教学技能竞赛奖项以及多个荣誉称号(三育人先进工作者、优秀班主任等)。

副主编谢昊,男,浙江传媒学院新媒体学院教师。2005年获得西安交通大学建筑环境与设备工程专业学士学位,硕士与博士期间就读于浙江大学,并于2016年获得了浙江大学计算机科学与技术专业博士学位。博士毕业后入职于浙江传媒学院新媒体学院至今。目前主要研究方向为深度学习在图像矢量化方面的应用,曾发表SCI、EI期刊与会议论文若干篇。

特约顾问扈文峰,男,教授,中国传媒大学计算机学院软件工程系主任,互动技术与艺术实验室主任,互动娱乐与动画技术专业硕士研究生导师。一直从事计算机游戏技术的教学和科研工作,研究方向为严肃游戏以及基于游戏技术的各种应用,发表严肃游戏领域学术论文多篇。历年来主持国家级、省部级科研项目多项,多为严肃游戏领域的开发应用,代表作有“智能节点弹性重叠网实时信息三维图形动态展示系统”“环保科普教育游戏—生命只在呼吸之间”“煤层气地面集输生产作业虚拟仿真系统”“航母战斗群海空作战仿真对抗训练游戏”等。所领导的互动技术与艺术实验室是国内使用Unity3D游戏引擎最早的团队之一,具有丰富的Unity3D引擎开发经验。第1章 熟悉Unity软件的操作1.1 可多平台发布的Unity游戏引擎

Unity是由Unity Technologies开发的一个让用户轻松创建各种类型游戏和虚拟现实等互动内容的多平台综合型开发工具。它实现了一次开发,一键式发布的方式,可直接发布到Windows、Linus、Mac、iOS、Android、Web、PS、XBox等平台上。Unity游戏引擎提供的功能日益完善,从单机游戏到网络游戏,从PC到移动设备,从游戏到VR、AR和体感游戏,其可扩展性、易用性、性价比等方面都吸引着越来越多的开发者投身到使用Unity游戏开发中。在全球,尤其是中国,Unity的用户群正在不断地扩大,各种论坛、教程逐渐丰富。图1-1所示为Unity的标志及用Unity开发的经典游戏。本书将从Unity引擎的使用展开,详细介绍Unity的用法。图1-1 Unity以及由Unity开发的游戏1.2 Unity游戏引擎的下载和安装

Unity安装程序需要通过Unity官网下载。想学习和试用的用户可以下载个人版本(Unity Personal),该版本提供了游戏开发的基本功能。如果想使用Unity的全部功能,需要通过官网商店购买专业版本或个人加强版。

购买付费版本的Unity,可以享受其提供的功能和无限期的升级功能,每个月还会向你的注册邮箱发送有关于Unity的最新消息,而且可以作为会员参加内部升级版的试用。在付费的过程中,你需要有一张支持Visa、Master等国际支付功能的信用卡,建议使用paypal支付方式支付,方便快捷。你可以在paypal网站上注册一个账号,并绑定你的信用卡,以后,你就可以采用此方式购买国际上的各种软件,还可以通过Unity的资源商店购买各种需要的插件和资源(当然,出于商业模式的考虑,其付费方式也可能会不断改变)。1.2.1 Unity的下载

我们以个人免费版本为例,讲解Unity的下载和安装过程(目前Unity的最新版本是2017系列,该版本支持DirectX11的功能,如果有DirectX11的显卡,可以更好地发挥Unity的功能)。

[1] 首先登录Unity的官网,如图1-2所示(界面内容会根据官网的更新而不同,下载安装界面也可能会随着版本的更新而有所改变)。图1-2 Unity官网主页

[2] 进入官网之后,点击右上角的获取Unity按钮,进入下载界面,如图1-3所示(下载版本随官方更新而不同)。图1-3 Unity下载页面

[3] 点击下载个人版,此时弹出下载界面,勾选点击下载安装程序按钮,如图1-4所示。图1-4 自动下载页面1.2.2 Unity的安装

[1] 下载完成之后,双击文件,下载并安装Unity各组件。如图1-5所示。点击【Next >】按钮,进入协议面板,选择【I Accept the terms of the license Agreement】选项(界面随引擎版本的更新可能会有所不同),如图1-6所示。图1-5 Unity 3D安装界面图1-6 协议界面

[2] 进入下一个安装界面,如图1-7所示。其中Unity是主程序,Example Project是自带的例子工程包。Unity Development Web Player是用于运行和测试Web端游戏的插件,MonoDevelop是一个开源的脚本编辑器,为Unity默认的脚本编辑器。点击【Next >】按钮,进入安装路径选择界面,如图1-8所示。注意,安装路径必须是英文名称,请不要安装在带有中文名称的目录下,虽然现在Unity支持中文,但是还有一些不完善的地方。如果使用的是中文Windows操作系统,请不要安装在桌面上,因为桌面的文件目录名为中文。图1-7 组件安装选择界面图1-8 目录选择界面

[3] 点击【Next】按钮,继续安装的过程,如图1-9所示。该安装过程比较长,请耐心等待。直到出现图1-10所示的界面,点击【Finish】按钮。便可以运行Unity了。图1-9 安装过程界面图1-10 安装完成界面1.2.3 Unity的注册

如果已有Unity账号登录即可。没有则点击Create one进入Unity官网注册账号然后点击Sign in(登录),如图1-11所示。图1-11 输入账号密码1.2.4 启动Unity

● 当你需要启动Unity时,可以用以下方式打开,点击桌面上的Unity图标来启动,如图1-12所示。图1-12 通过桌面图标启动Unity

● 或者点击开始菜单,输入Unity来启动,如图1-13所示。图1-13 通过开始菜单启动Unity

● 当然,还可以通过安装目录来启动Unity,双击“你的安装目录”/Unity/Editor/Unity.exe,如图1-14所示。图1-14 通过安装目录启动Unity

● Unity引擎开启成功界面如图1-15所示。图1-15 Unity引擎开启成功界面1.3 认识Unity的编辑界面

当你第一次打开Unity(本书使用Unity 2017版本)时,显示的是Unity 2017的默认布局方式。在默认的界面布局方式中,显示了游戏开发中经常使用的界面窗口。当然,你也可以根据实际需要和习惯重新布局Unity的界面,如图1-16所示。接下来一一介绍这些界面的作用。图1-16 Unity默认编辑窗口1.3.1 软件标题栏

所有的应用程序基本上都有标题栏,标题栏用于显示软件的一些信息。Unity的标题栏也具有同样的作用。这个标题栏显示了关于游戏工程,游戏场景和游戏发布平台的信息,如图1-17所示。图1-17 Unity 3D的标题栏“Unity 2017.1.11 Personal(64bit)”表示该软件的名称和版本,“CompleteMainScene.Unity”表示当前打开场景的名称,“First Unity2017 Project”表示该工程的名称,“PC,Mac&Linus Standalone”表示该游戏的发布平台。如果标题栏后面加了一个“*”号,表示该场景做了修改之后还未保存。1.3.2 主菜单

主菜单栏集成了Unity的所有功能菜单命令。我们可以通过菜单栏实现创作,如图1-18所示。每个下拉菜单的左边是该菜单项的名字,右边是其快捷键,如果菜单项名字后面有省略号,表示将打开一个对应的面板,如果后面有一个三角符号,表示该菜单项还有一个子菜单。如果安装了其他插件时,可能会在菜单中添加其他的选项。图1-18 主菜单栏

1. File(文件)菜单包含创建、打开游戏工程和场景,以及发布游戏,关闭编辑器等,如图1-19所示。图1-19 File菜单

● New Scene(新建场景):创建一个新的游戏场景,快捷键是【Ctrl +N】。

● Open Scene(打开场景):打开一个已经保存的场景,快捷键是【Ctrl + O】。

● Save Scene(保存场景):保存一个正在编辑的场景,快捷键是【Ctrl + S】。

● Save Scene as…(把场景另保存为……):把一个正在编辑的场景保存为另外一个场景,快捷键是【Ctrl + Shift + S】。

● New Project…(新建工程):创建一个新的游戏工程。

● Open Project…(打开场景):打开一个已经存在的工程。

● Save Project(保存工程):保存一个正在编辑的工程。

● Build Setting…(发布设置):发布一个游戏,通过这个菜单可以发布不同平台的游戏,快捷键是【Ctrl + Shift + B】。

● Build & Run(发布并运行):发布并运行该游戏,快捷键是【Ctrl + B】。

● Exit(退出):退出编辑器。

2. Edit(编辑)菜单包含了回撤、复制、粘贴、运行游戏和编辑器设置等功能,如图1-20所示。图1-20 Edit菜单

● Undo Selection Change(撤销):当你误操作之后,可以使用该功能回到上一步的操作,快捷键是【Ctrl + Z】。

● Redo(取消回撤):当你撤销次数过多时,可以使用该功能前进到上一步的撤销,快捷键是【Ctrl + Y】。

● Cut(剪切):选择某个对象并剪切,快捷键是【Ctrl + X】。

● Copy(拷贝):选择某个对象并拷贝,快捷键是【Ctrl + C】。

● Paste(粘贴):剪切或者拷贝对象之后,可以把该对象粘贴到其他位置。

● Duplicate(复制):复制选中的物体,快捷键是【Ctrl + D】,在Unity 3D中,该功能的使用比【Copy + Paste】更多。

● Delete(删除):删除某个选中的对象,快捷键是【Shift + Del】。

● Frame Selected(聚焦选择):选择一个物体后,使用此功能可以把视角移动到这个选中的物体上,快捷键是【F】。

● Lock View to Selected(锁定视角到所选):选择一个物体后,使用此功能可以把视角移动并锁定到这个选中的物体上,视角会跟随所选对象移动而移动,快捷键是【Shift + F】。

● Find(查找):可以在资源搜索栏中输入对象名称来查找某个对象,快捷键是【Ctrl + F】。

● Select All(选择所有):可以一次性选择场景中所有的对象,快捷键是【Ctrl + A】。

● Preferences…(偏爱设置):可以设置Unity的外观、脚本编辑工具、Android SDK路径等。

● Modules(模块管理):查看Unity各模块及其版本。

● Play(运行):点击可以运行游戏,快捷键是【Ctrl + P】。

● Pause(暂停):暂停正在运行的游戏,快捷键是【Ctrl + Shift + P】。

● Step(逐帧运行):可以一帧一帧的方式运行游戏,每点击一次,游戏运行一帧,快捷键是【Ctrl + Alt + P】。

● Selection(所选对象):包括Load Selection(载入所选)和Save Selection(保存所选)。Load Selection用于载入使用Save Selection保存的游戏对象,选择所要载入相应游戏对象的编号,便可重新选择的游戏对象,如图1-21所示。Save Selection用于保存当前场景中所选择的游戏对象,并赋予对应的编号。图1-21 Save Selection

● Project Settings(工程设置):可以通过根据工程的需要设置该工程中的输入、音频、计时器等属性,如图1-22所示。图1-22 Project Settings

● Network Emulation(网络模拟器):在开发网络游戏时,可以通过选择不同的网络带宽来模拟实际的网络。如图1-23所示。图1-23 Network Emulation选项

● Graphics Emulation(图形处理模拟器):该选项可以模拟针对不同的图形处理API或者设备进行最终效果的模拟,如图1-24和图1-25所示。图1-24 Pc图形处理模拟器图1-25 Android和iOS图形处理模拟器

● Snap Setting…(捕捉设置):通过该选项,可以在编辑场景时对游戏对象进行移动、旋转和缩放的精度。如图1-26所示。图1-26 Snap Setting面板

3. Assets(资源)菜单:该菜单提供了对游戏资源进行管理的功能,如图1-27所示。图1-27 Assets菜单

● Create(创建):新建各种资源。

● Show in Explorer(打开资源所在的目录位置):选择某个对象之后通过操作系统的目录浏览器定位到其在所在目录中。

● Open(打开资源):选择某个资源之后,根据资源类型以对应的方式打开。

● Delete(删除某个资源):其快捷键是【Del】。

● Open Scene Additive(打开附加路径场景):将选定的场景资源中的所有对象添加到当前场景中。

● Import New Asset…(导入新的资源):通过目录浏览器导入某种需要的资源。

● Import Package(导入包):在Unity 3D中,资源可以通过打包的方式实现资源的共享,并通过导入包来使用包资源。包资源的文件后缀是UnityPackage。

● Export Package…(导出包):通过在编辑器中选择需要打包的资源,并通过该功能把这些资源打包成一个包文件。

● Find References In Scene(在场景中找到对应的资源):选择某个资源之后,通过该功能在游戏场景中定位到使用了该资源的对象。使用该功能后,场景中没有利用该资源的对象会以黑白来显示,而使用了该资源的对象会以正常的方式显示,如图1-28所示。此图显示选择了Helipad这个资源后使用该功能的效果。

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载