Unity 3.x游戏开发实例(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-19 02:47:55

点击下载

作者:[加]Ryan Henson Creighton 著

出版社:人民邮电出版社

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

Unity 3.x游戏开发实例

Unity 3.x游戏开发实例试读:

前言

游戏开发新手都非常乐观、有激情、野心勃勃。但是这种野心通常都是危险的。初出茅庐的独立开发人员和业余爱好者常常好高骛远。近期的一些最受欢迎的游戏(《涂鸦跳跃》(Doodle Jump)、《愤怒的小鸟》(Angry Birds)和《屋顶狂奔》(Canakalt)等)都是非常简单有趣的游戏,它们既给玩家带来了乐趣,也给开发人员带来了巨大的利润。使用Unity制作简单的游戏更容易让游戏开发新手获得成功。

本书让你一开始就处于有利地位,强调你确实可以完成的小而简单的游戏创意和可玩的项目。随着章节的推进不断增加游戏的复杂性。我挑选的示例可以帮助你学习各种各样的游戏开发技术。对Unity和编程有了基本了解后,你就可以通过完成简单有趣的游戏,在游戏行业占有一席之地。

本书使用出众的(和免费的)Unity 3D游戏引擎,教给你如何制作可以在不同的游戏中重复使用的关键游戏元素。通过使用Unity 3D和简单易懂的代码,教给你如何制作简单易懂的游戏,将你带入独立的游戏文化。它帮助你将初级颠球游戏转变成通过医院走道,将一颗仍在跳动的心脏紧急送往移植病房的疯狂赛跑;将一个具有戏剧性的爱情故事包装到一个简单的投掷游戏上,并将它转变为拥有壮观爆炸和“pew”音效的经典太空射击游戏。看完书后,你就可以学会开发制作你自己游戏的重要功能,这些功能关注的是组成游戏的有趣机制。本书涵盖的内容

第1章将你带入神奇的游戏引擎Unity 3D——该引擎允许你制作游戏,并把它们部署到不同的设备上,这些设备包括(在本书编写时)Web、PC、iOS平台、Android设备和目前市场上的所有游戏设备。你可以玩一些基于浏览器的Unity 3D游戏(从大型的多人在线游戏到简单的卡丁赛车游戏),来了解引擎可以处理的内容。你可以下载并安装自己的Unity 3D副本,以及该软件中自带的激动人心的Angry Bots演示程序。

第2章讨论游戏机制和主题的不同之处。使用电子游戏历史中的示例(包括《百战天虫》(Worms)、《马里奥网球》(Mario Tennis)和《焦土》(Scorched Earth)),我们将揭露这些更加复杂和令人印象深刻的游戏背后的趣味性。通过关注这些电子游戏的构件,我们将学习如何将一个很大的游戏概念分解成可处理的起始项目。

第3章将你带入 Unity 3D游戏项目。我们将探讨Unity环境,学习如何创建并放置图元、添加物理材质和刚体这类组件,并使用Unity内置的物理引擎让球在球拍上反弹。

第4章通过逐步引入脚本来继续制作颠球游戏。只需编写简单的代码,就可以让球拍随着鼠标在屏幕中移动,为游戏添加一些互动性。该章是一堂关于游戏脚本的速成课,可以重新点燃你在高中计算机课程中被浇灭的热情。

第5章包括游戏开发中经常被忽略的方面:通用的用户界面设计(游戏中的按钮、Logo、画面和滑块等)本身就是一个完整的学科。Unity 3D包括很丰富的GUI(Graphical User Interface,图形用户界面)系统,它允许你创建引导玩家进入游戏的按钮等。我们将探讨这个系统,并使用它制作一个全二维游戏。当本章结束时,《机械修复手游戏》(Robvt Repair)(一款多彩的配对游戏)就完成一半了。

第6章从第5章遗留下来的问题开始。将为我们基于GUI的游戏添加交互性,并在我们的游戏开发工具带中添加重要的工具,包括生成随机数和限制玩家控件。该章结束后,你就拥有一个只使用Unity GUI系统制作的完整游戏了,而且你也拥有了自己探索该系统的基础知识,可以在游戏中创建新的控件方案了。

第7章是独立的一章,教你如何制作3种不同的游戏倒计时:数字倒计时、图形倒计时、饼图倒计时,这些倒计时使用的是同一段基本代码。你可以把这些倒计时添加到本书的任意一款游戏中,或者在你自己的游戏中重用该代码。

第8章回顾前面制作的颠球游戏,并用3D模型代替简单的图元。你将学习如何制作材质,并把它们应用在从外部工具包中导入的模型中。你还将学习如何检测游戏对象之间的碰撞,如何在屏幕中输出得分结果。本章结束时,《Ticker Taker》就完全制作好了——让一颗仍在跳动的心脏在医院的午餐托盘上不断反弹,并把它紧急送往移植病房!

第9章介绍Unity内置的粒子系统(Particle System),使用该系统可以创建烟、火、水、爆炸和魔术等效果。我们将学习如何在3D炸弹模型中创建火花和爆炸,如何使用脚本在3D角色上播放和停止动画。你需要知道《The Break-Up》游戏的玩法——抓住抛弃你的女朋友扔出窗外的啤酒杯,躲避爆炸物。

第10章完成第9章的《The Break-Up》游戏。你将学习如何在多个游戏对象上重用脚本,如何制作预制(Prefab)(只需要一次点击就可以修改一堆对象)。你还将学习在游戏中添加音效,让玩家有更加完美的体验。

第11章履行第2章的承诺,重新包装《The Break-Up》。通过交换模型、修改背景、添加射击机制,将在陆地上抓取啤酒杯的游戏转换成动感十足的太空射击游戏。你将在本章中学习如何创建双摄像头组合镜头,如何使用代码为游戏对象添加动画,如何修改代码,以节约时间和精力。

第12章将你带回《Ticker Taker》:用Unity内置的动画系统创建摄像头绑定,它将穿过医院内部模型。通过使用《The Break-Up》中的双摄像头组合,创建玩家正在穿过医院走道的假象。该章以项目绑定和将它部署到Web中结束,这样你的追随者就能体验你的杰作了。

附录 A 列出与 Unity 相关的网站、资源以及免费的游戏开发工具等。千万不要错过!阅读本书需要的东西

阅读本书并不需要特殊的准备。只要按前面几章介绍的方法下载和安装Unity 3D(http://unity3d.com/unity/download/)即可(附录A列出需要的软件资源和链接)。本书读者对象

如果你想开发游戏,又觉得自己不能处理复杂的编程,本书就很适合你。本书也适用于学习过其他软件(如Flash、Unreal Engine、Game Maker Pro)的开发人员。约定

本书中有几个经常出现的小标题。

为了给过程或任务的完成更明确的指示,我们使用如下所示的小标题。实践时刻——标题

1)动作1

2)动作2

3)动作3

要理解这些指示的含义,还需要一些解释,所以它们后面通常跟着“刚刚发生了什么”。刚刚发生了什么

该标题用于解释你刚刚完成的任务或指令。

你还可以发现一些其他的学习辅助,包括“临时测验”和“试一下”。临时测验——标题

这些是一些简短的多项选择题,旨在帮助你测试一下是否真正理解了。试一下——标题

这些设置了一些实际挑战,为你提供一些想法来体验你学到的知识。

你还能发现一些不同风格的文本,它们用于区分不同种类的信息。下面就是这些风格的示例,以及它们含义的解释。

正文中的代码如下所示:“其结果是,第一次调用Update函数时,球拍会沿着x轴移动2个单位。”

代码块如下设置:function Update () { renderer.enabled = false; }

当我们要提醒你注意某个代码块时,会将相关的行用黑体字标注:GUI.BeginGroup (new Rect (Screen.width - clockBG.width - gap, gap, clockBG.width, clockBG.height)); GUI.DrawTexture (Rect (0,0, clockBG.width, clockBG.height), clockBG); GUI.EndGroup ();

新术语和重要的词以黑体字标注。在屏幕上看到的单词,在示例的菜单或对话框中出现的文本如下所示:“在Project面板中添加一个新脚本。将它命名为Mouse Follow”。

这样显示出现在对话框中的警告或注意。

这样显示提示和技巧。读者反馈

我们一直欢迎读者的反馈。让我知道你们如何评价本书——你喜欢或者不喜欢的内容是什么。读者反馈有助于我们出版能最大限度帮助你的书。

要给我们发送一般反馈,只需要给feedback@packtpub.com发送一份邮件即可,要在你邮件的主题中标注书名。

如果你需要一本书,希望我们能出版,就在www.packtpub.com上,以SUGGEST A TITLE的形式发送便条,或者给suggest@packtpub.com发送邮件。

如果你有某个主题的专门知识,并且对写书感兴趣,可以看看www.packtpub.com/authors上的作者指南。客户支持

如果你购买了Packt出版社的一本书,我们可以最大限度地提供帮助,让你的购买更有价值。疑难问题

如果你对本书有任何疑问,都可以通过questions@packtpub.com联系我们,我们会尽全力解答。第1章这是一个神奇的工具

技术是一种工具。它可以帮助我们更快速、简单地完成不可思议的事情。在我们发明新型蒸汽动力的气锤之前,我们只能用锤子。而在我们发明了锤子之前,只能忍受赤手空拳地将钉子敲进木板的痛苦过程。是技术让我们少些辛劳,让我们生活得更美好舒适。1.1 Unity 3D简介

Unity 3D是一种相对较新的技术,它致力于让游戏开发者生活得更美好舒适。Unity是一款游戏引擎或游戏制作工具,它用于让你这种有创意的人制作电子游戏。

使用Unity可以更加快速轻松地开发电子游戏。以前开发游戏需要一大堆穿孔卡片、占据了整个房间的电脑和供奉给称为Fortran的“远古之神”的“贡品”。现在你拥有了Unity,再也不需要徒手敲钉子了。把它作为你的工具——你的创作工具包中的新技术。1.2 风靡全球的Unity

在本书中,我们会把我们的游戏开发梦分解成很小的部分,而不是任何庞大史诗般的开放世界的游戏。这里的关键是把重点放在你确实可以完成的项目上,而不是把精力耗费在不可能实现的野心之作。本书将教你打造4款游戏,它们关注的都是小而简单的游戏机制。你会学习如何创建可以应用于所有项目的不同功能,填补游戏让它们提供完整的体验。完成后,就可以把这些游戏发布到互联网、Mac或PC上了。

Unity 3D团队一直致力于其他平台的打包和导出选项。在编写本书时,Unity已经可以制作在iPhone、iPod、iPad、Android设备、Xbox Live Arcade、PS3和任天堂WiiWare服务中运行的游戏了。这些工具都是Unity核心包的附加功能,需要额外支付费用。因为我们关注的是轻松就能实现的功能,所以本书使用的是Unity核心3D程序。

学会了书中的入门技能后,就可以扩展你的知识,开始制作越来越复杂的项目。关键是从一些可以完成的项目开始,然后在制作的每个新项目中添加可以自我挑战并增长知识的小功能。任何统治世界的宏伟计划都要从在后院划分一块领土开始;将本书当成你家的后院吧。1.3 基于浏览器的3D?欢迎来到未来

Unity最令人惊叹的是它可以让你在Web浏览器中体验全3D游戏。它通过Unity网络播放器来实现这个功能——一款嵌入到互联网、运行Unity内容的免费插件。1.4 实践时刻——安装Unity网络播放器

在你沉醉在Unity游戏世界前,先下载Unity网络播放器。和Flash播放器运行Flash创建内容的方式一样,Unity网络播放器是在Web浏览器上运行Unity创建内容的免费插件。(1)打开http://unity3D.com。(2)点击主页上的按钮安装Unity网络播放器(见图1.1)。图1.1(3)按照屏幕上的提示操作,直到网络播放器安装完成(见图1.2)。图1.2(4)只有在Mac上执行这个过程有点复杂。你需要下载并运行一个.dmg文件,然后输入管理员密码来安装该插件,但它相对来说比较快速,而且也不费力。1.5 欢迎来到Unity 3D

安装好网络播放器后,就可以在浏览器中查看通过Unity 3D制作工具创建的内容了。1.5.1 可以用Unity制作什么呢

为了能充分体会Unity的神奇,我们先来看其他人用Unity制作的一些项目。虽然我们目前还达不到这种境界,但可以先看一下游戏开发者是如何将这个神奇的工具发挥到极致的。《FusionFall》

Unity之旅的第一站是《FusionFall》——一款大型多人在线角色扮演游戏(Massively Multiplayer Online Role-Playing Game,MMORPG),游戏界面见图1.3。你可以在fusionfall.com上体验它。可能需要注册后才能进入该游戏,但它绝对值得你这么做!图1.3《FusionFall》是由Cartoon Network电视频道委托制作的,发生在一个重新想象的、动画风格的世界,那些家喻户晓的Cartoon Network角色都在这里长大。这里有更老练的飞天小女警、德克斯特、福斯特和他想象中的朋友,以及小孩大联盟里的孩子,他们会和邪恶的绿色外星人战斗。1.5.2 完全搞定《FusionFall》是一款大型的、非常引人注目的游戏,这款游戏的推出为当时默默无闻的Unity游戏引擎吸引了很多目光。作为技术演示,它是你的新型技术工具功能的最好展示之一!《FusionFall》拥有实时的多玩家网络、聊天、探险、战斗、物品列表、NPC(非玩家角色)、基本AI(人工智能)、角色命名、形象定制和换装。这只是这款游戏功能集的一大亮点。这款游戏还包括很多内容。1.5.3 我们应该尝试制作《FusionFall》吗

现在你可能在想:“太好了!《FusionFall》就是我想用Unity制作的游戏,本书就要教我如何实现了!”

遗憾的是,制作《FusionFall》这种大规模游戏的详细说明可能洋洋洒洒、长篇累牍,而且需要几个朋友一起翻开它巨大的页面。它需要用你的余生来阅读,在你弥留之际,你终于意识到,当初在线订购它是多么愚蠢的决定,虽然当时标明了:包邮哦,亲!

这就是原因:看一下http://fusionfall.cartoonnetwork.com/game/credits.php上的致谢名单链接。

该页列出了所有参与制作这款游戏的人员。Cartoon Network聘请了经验丰富的韩国MMO开发商Grigon娱乐公司。这个致谢名单上有80多个名字!显然,你只有两条路可选。(1)发明一个克隆机,然后克隆出79个自己。将这些克隆人送到学校学习各种专业,包括市场营销、服务器端编程和3D动画。然后和你的克隆体一起花一年时间制作这款游戏。记得给每个人戴上袖标来区分谁是谁。(2)现在就放弃,因为你永远不可能做出你梦想的游戏。1.5.4 另一种选择

在你草率地决定放弃游戏开发而跑去种地前,让我们换个角度来看待这个问题。《FusionFall》确实非常优秀,它看起来就像是你一直梦想制作的游戏。本书并不是要粉碎你的梦想。它只是降低你的期望,把这些梦想先放在密封罐里,一步步来。老子说:“千里之行,始于足下。”我并不了解某人的爱好,但是如果他对电子游戏感兴趣,他可能就会说一些类似的话——从功能单一的游戏开始制作功能丰富的游戏。

所以,我们先把《FusionFall》梦想放在密封罐里,当我们做好准备后再把它取出来。让我们先看一些比较小的Unity 3D游戏示例,并讨论一下如何制作它们。1.《越野狩猎迅猛龙》(Off-Road Velociraptor Safari)

要是没有到Blurst.com看看,Unity 3D游戏之旅就是不完整的——这是一个由独立游戏开发者Flashbang工作室拥有并经营的游戏门户网站。Blurst上除了托管其他独立游戏开发者的游戏外,到处都是Flashbang自己制作的新奇游戏,其中就包括《越野狩猎迅猛龙》,见图1.4。图1.4

在《越野狩猎迅猛龙》中,你扮演一只戴着太阳帽和单片眼镜的恐龙,驾驶着一辆装备了致命链球的吉普车(就像在考古教科书中那样)。你的目标是控制吉普车做出各种动作,甩动链球杀死你的恐龙同胞(很显然)。

对于很多独立游戏开发者和评论员来说,《越野狩猎迅猛龙》是他们接触的第一个Unity游戏。有些评论员说,当看到可以在浏览器中运行全3D游戏时,他们都惊呆了。而其他评论员则有些失望,因为这款游戏在速度较慢的电脑上跑起来有些吃力。我们稍后会介绍优化问题,但从开始就应该时刻想着保持性能。2.更少功能,更多希望

体验了《越野狩猎迅猛龙》和Blurst网站的其他游戏后,你会更好地意识到,在没有经验丰富的韩国MMO开发者团队的情况下,可以用Unity制作什么。这款游戏包括3D模型、物理学(控制物体逼真移动的代码)、碰撞(检测物体相互碰撞的代码)、音乐和音效。和《FusionFall》一样,使用Unity网络播放器插件就可以在浏览器中运行这款游戏。Flashbang工作室还销售这些游戏的可下载版本,这说明Unity还可以制作独立的可执行游戏文件。3.我们是否应该制作《越野狩猎迅猛龙》

我们现在还不能制作《FutionFall》,但我们一定能制作《越野狩猎迅猛龙》这样的小游戏,对吧?答案是否定的。再次声明,本书并不是要粉碎你的游戏开发梦想。事实上,《越野狩猎迅猛龙》是5个非常有天分的、经验丰富的技术人员花了8周时间才完成的,到现在他们还在持续调整、改善。对于《FusionFall》这类成熟的MMO游戏来说,这种游戏很小,但是对独立开发者也是巨大的挑战。把它放在架子上的罐子里,先来看一些成功率更高的东西。1.5.5 我选择Wooglie

Wooglie.com是由荷兰的M2H游戏工作室经营的Unity游戏门户网站。看首页的第一眼就能知道,这是一个和Blurst.com完全不同的门户网站。Wooglie上的大多数游戏都不是精心打造的,跟Blurst的游戏比起来显得不够精致,也不够专业。但这才是我们开始学习Unity的地方。这正是一个新的游戏开发者,或Unity这类新技术初学者的起点。

试着玩玩Wooglie上的游戏。我会标出一些你可能感兴趣的游戏。1.《欢乐赛车》(Big Fun Racing)

欢乐赛车是一款简单但效果出众的游戏,你需要驾驶一辆玩具车一边飙车一边收集硬币,见图1.5。它的特色是拥有不同关卡和可以解锁的车辆。这款游戏花了设计者几个月的业余时间;他将车辆模型的制作工作外包了出去。图1.52.《Diceworks》《Diceworks》是一款在iPhone平台上运行的非常简单的、精心打造的Unity 3D游戏,见图1.6。我们不会介绍关于iPhone开发的任何内容,但了解你的Unity内容可以部署到一些其他的设备和平台也是不错的,包括Apple iOS、Android和任天堂Wii。这款软件的这些附加版本需要另付费用,但你可以使用Unity独立版本,免费将你的游戏部署到Web、Mac和PC上。图1.6《Diceworks》是由一个美工和一名程序员合作开发的。很难找到同时拥有编程和艺术才能的人;科学家说,这两门学科由大脑的不同叶分管,通常我们只擅长其中之一。制作《Diceworks》的美工—程序员搭档是游戏开发中的常见配置。听听你的大脑在跟你说什么?你更擅长视觉效果还是逻辑思维?艺术还是编程?找到答案后,就可以找个人来组成大脑的另一半,这样就可以制作出在两个领域都发挥出色的游戏。

无论如何,《Diceworks》肯定是和我们所能管理的规模相当接近的Unity项目。

另一个有趣的发现是,《Diceworks》是一款使用3D引擎制作的2D游戏。第三个“D”基本上是不存在的,所有的游戏元素都在同一个平面上。起步时忽略一个维度并不是什么坏主意。增加游戏的维度会让你的设计变得更加困难,开始使用Unity时只关注X轴和Y轴会更简单,先把Z轴封到那些梦想罐里吧!有一些切实可行的游戏示例后,过不了多久就可以从罐子里取出Z轴,并打开它。我们在本书中制作的游戏都是2D平面的,不过使用的仍是三维模型。尽管如此,还是有一些游戏成功地贯彻了这个理念。比如,《新超级马里奥兄弟》(New Super Morio Bros)。Wii将它的3D角色锁定在2D平面,并实现了极其复杂且令人满意的平台效果。1.6 先走后跑(或双脚跳)

新游戏开发者常犯的错误是“贪多嚼不烂”。即使是有经验的开发者,当他们沉醉在一个新项目或当他们接触到一个新技术并希望能立刻熟练使用它时,也会犯同样的错误。真正危险的是,你坐下来尝试编织你的梦想,比如,这是一款结合了《暗黑破坏神》、《啾啾火箭》和Microsoft Excel所有精华的剑与魔法RPG(Role Playing Game,角色扮演类游戏)巨作。时间一点点过去了,可它看起来和你预期的游戏一点都不沾边,于是你放弃了。你会意识到一旦你在制作梦想游戏时遇到挫折,那你的游戏开发者之路就很难起步了。

你应该从小的东西开始!“罗马不是一天建成的”,你梦想中的卡丁车赛车游戏也不是。步子小一点,你就能体验到成功。然后吸收你学到的知识,慢慢建立你的专业知识,直到你有实力打开架子上的梦想游戏罐。

现在先把我们的梦想架放在一边,把注意力放到那些小的、可实现的游戏上。读完本书后,你就会拥有一些可运行的游戏,这些游戏会随着你经验的积累变得越来越复杂。我希望你读完这本书后,就能够具备追寻梦想的实力,可以为你的游戏增添新特性,可以为新知识搜索所需要的资源。

第2章详细介绍了,当你决定制作游戏时要从哪里入手。我们还可以看到现实中的一些游戏示例,看看它们如何从简单有效的想法慢慢发展为极其复杂、功能强大的游戏。从小橡树果,成长为强大的多人橡树游戏。1.7 永远没有“终点”

整本书都贯穿了迭代思想。一些游戏开发者每天都在不变介质上制作内容,如游戏光盘和用来制作黄金正式版(游戏的最终发行版)的磁带。在Web上部署游戏的乐趣之一是它们永远不会有真正完成的一天。你可以持续调整你的Web游戏并修改它们,直到它最终变得比开始发布时有趣得多为止。

直到《越野狩猎迅猛龙》“完成”数年(实际上是3年)后的今天,Flashbang工作室仍然在修改和完善它!该团队通过不断修改游戏并提升其性能的方式,解决最初关于其低迷表现的批判。

同样,我们首先也会制作一些相当粗糙的半成品。但是当我们了解了更多关于如何编写很多游戏中常见的关键模块后,我们会回到早期不成熟的作品,添加这些模块并提高它们的性能。1.8 停一下!工具时间

你已经看到了Unity可以做些什么,现在是时候下载这个应用程序尝尝鲜了!可以从Unity 3D网站上免费(编写本书时)下载Unity独立版本。(1)打开http://unity3D.com。(2)单击Download Now按钮。(3)下载适合你所用平台(Mac或PC)的、最新版本的Unity 3D创作工具。如果有选项提示,记得下载包括示例项目的程序。(4)按照屏幕上的提示操作,直到Unity创作工具安装完成。(5)启动Unity。探索Bootcamp

经过快速注册过程后,Unity就准备好了。如果一切顺利的话,AngryBots演示会自动打开。如果它没有自动打开,就会出现一个对话框询问你是否打开一个项目,默认情况下,可以在下面的位置中找到AngryBots演示。Max OS:Windows XP:

或Windows 7/Vista:

如果你不按常理出牌,在下载Unity时没有选择示例项目选项框,就需要重新下载Unity来获取AngryBots演示。也可以选择从Unity网站中下载其他类似于AngryBots演示的示例学习项目:

http://unity3d.com/support/resources/example-projects/

由于Unity技术团队不断升级软件,因此他们推出了新的、更加优秀的演示程序来演示Unity的功能。如果你在阅读本书时,Unity 3D启动了一个不同的演示项目,不要害怕——大多数演示程序都提供了我们要讨论的内容。

第一次打开AngryBots演示程序时,你应该会看到一个启动画面,能帮助你跳转到不同的教程资源和语言指南。这真是帮了大忙了!现在先关掉它(不要担心。下次它还会出现,除非你取消勾选Show at Startup复选框)。如果你取消勾选该复选框,但是想再次看到欢迎画面,只需要单击Help | Welcome Screen即可。

单击Window | Layouts | 2 by 3菜单,就可以看到我们将要介绍的面板(见图1.7)。图1.7

点击屏幕顶端中心的Play按钮即可开始测试演示程序(见图1.8)。图1.8

使用键盘上的WASD键可以控制在AngryBots演示中的移动。按住鼠标左键可以自动开火(见图1.9)。完成探索后,按住Esc键暂停游戏,并重新获得鼠标控制。然后再次单击Play按钮结束演示。图1.91.9 技术的神奇之处

Unity提供了可以在软件中对关卡建模的地形工具。它提供了一个现成的第一人称控制器预制(First Person Controller Prefab)对象,让你的世界自动接受WASD键盘控制,这样可以探明地形,或者也可以用你自己的角色取代AngryBots英雄,创建一个第三人称游戏。Unity会自动处理渲染(绘制)、碰撞、物理和音效。它是一个神奇的工具!

坚持开放世界

如果你想学习如何在Unity中塑造你自己的地形,并添加3D模型、声音和交互来制作一款简单实用的3D开放世界游戏,可以看看Will Goldstone编写的《Unity 3.x Game Development Essentials》(Packt出版社出版)。

在AngryBots演示中看到的大多数内容都不能直接用Unity制作。大部分素材都是用其他软件制作的;Unity是用来将所有这些内容组合起来,并使它们可交互的程序。演示包括特殊的模型,如从3D Studio Max、Maya或Blender这些3D软件包中导入的气闸。某些元素,如机器人敌人,是有脚本连接的。脚本是游戏世界中物体的行为指南。我们将在本书中学习如何导入3D模型,以及如何编写控制它们的脚本。

我们先来快速浏览一下Unity的界面和几个需要注意的地方。1.10 Scene窗口

Scene(场景)窗口是定位游戏对象并移动它们的地方(见图1.10)。这个窗口有多种可以改变其细节层次的控件。使用这些控件来切换照明,显示带有纹理、线框或纹理线框的窗口内容。可以使用右上角的彩色小工具(Gizmo)约束X、Y和Z轴的视角,以便观察场景的顶部和侧面。点击Gizmo中间的白色方形返回透视视图。该窗口还设有搜索栏。试着单击绿色的Y锥形,从上面观察AngryBots演示,然后在搜索栏中输入rock。所有名称中含有“rock”的对象都会亮起来,而场景中的其他对象则会变灰。单击小的x按钮清除搜索栏。图1.101.10.1 Game窗口

Game(游戏)窗口显示的是玩家们看到的内容,见图1.11。当点击Play按钮测试游戏时(就像刚才在AngryBots演示中所做的那样),制作的成果就会显示在该窗口中。切换到Maximize on Play按钮,可以用全屏模式测试游戏。图1.111.10.2 Hierarchy面板

Hierarchy(层次结构)面板列出了场景中的所有游戏对象,见图1.12。游戏对象(摄像机、光源、模型和预制(prefab))组成了游戏。它们可以是“有形的”,如AngryBots演示中的气闸门和金属罐。它们也可以是“无形的”,只有游戏开发者才能操作,如摄像机、光源和碰撞器,这些是特殊的不可见形状,告知游戏引擎两个游戏对象相互接触的时间。图1.12

AngryBots演示的Hierarchy面板包括金属罐、桌子、气闸和电脑终端等的游戏对象。它还列出了玩家——一个非常复杂的游戏对象,用于控制英雄的移动以及与环境的碰撞。有一个追踪玩家角色的摄像机。该摄像机是我们在游戏世界的眼睛。该演示列出了称为Environment(sounds)的集合——一系列游戏对象,用来决定玩家行走在关卡的不同位置时听到的声音(如屋外的暴雨,以及他在室内移动时机器的嗡嗡声)。所以,游戏对象可能包括“有形的”对象,如金属罐和气闸,以及幕后无形的东西,如光源、摄像机和动作(脚本)。

单击Hierarchy面板中的一个游戏对象,然后将鼠标悬停在Scene窗口。按下键盘上的F键,Scene窗口就会自动平移并缩放到这个对象。或选择Edit | Frame Selected,这比使用键盘快捷键更可靠(我常常把F当作表示帮助我记住这个快捷方式功能的焦点)。1.Project面板

Project(项目)面板列出了用来在项目中创建游戏对象的所有元素,如图1.13所示。例如,在Objects/Enemies文件夹中查找mech_bot。AngryBots演示的EnemyMech游戏对象是由一系列网格组成的,它们表示网格的形状、描述其“皮肤”或着色的材料,以及描述其运动的动画。所有这些内容都列在Project面板中。图1.13

Project面板显示的是计算机的操作系统中Assets特殊文件夹的内容。当创建一个新项目时,Unity会自动创建Assets文件夹。如果把一个兼容的文件,如一个3D模型、一个音效或一张图片拖入Project面板中,Unity会将它复制到隐藏的Assets文件夹中,并把它显示在Project面板中。

不要乱动Assets文件夹

Unity存储的是该文件夹的元数据,通过操作系统移动或删除其内容,就可能会破坏你的项目。如果你需要进行更改,一定要确保它们在Unity的Project面板中。2.Inspector面板

Inspector是上下文相关的面板,见图1.14,这意味着,它的变化取决于你在Unity中其他位置选择的对象。你可以在这里调整Hierarchy面板中所列游戏对象的位置、旋转和比例。Inspector面板还可以显示控件,以便配置可以向游戏对象中添加功能的组件。在Unity的三个主面板(Hierarchy、Project和Inspector)中,Inspector是最费时间的,因为这是调整组成游戏项目中元素每个环节的地方。图1.14

上面所示的Inspector截图显示了AngryBots演示中属于Player游戏对象的组件:脚本(包括Free Movement Motor和Player Move Controller)、刚体组件、胶囊碰撞器等。要在电脑中查看这些内容,需要点击打开Hierarchy面板中的Player游戏对象。3.注意

使用Inspector面板快速改变角色的方向。让英雄在演示开始时是倒立的(这一定可以让那些坏人更愤怒)。

我们可以使用Inspector面板来改变PLayer对象的方向。按照下面的步骤执行:(1)在Hierarchy面板中,选择Player游戏对象(见图1.15)。图1.15(2)点击Rotate按钮,该按钮看起来是两个首尾相对的箭头(见图1.16)。图1.16

Player游戏对象底部会出现一个球体。红色的x轴旋转手柄环绕着Player对象的身体。拖曳它旋转Player对象模型,好像它正站在一个非常危险的独木舟上。蓝色的z轴旋转手柄旋转该Player对象,好像用一个无形的别针贯穿他的脚踝。如果我们拖曳该手柄,该Player对象就会不是面朝地,就是背朝地进行旋转,就好像他得了宇宙病。绿色的y轴旋转手柄像呼啦圈一样环绕着该Player对象。

随意拖动该手柄会使Player对象面向不同的方向旋转。Player游戏对象可能会变得相当恐怖;为了将旋转控件隔离开,在Scene窗口的搜索栏中输入player来排除其他所有游戏对象,见图1.17(需要记住的是,当鼠标光标位于Scene视图时,按下F键可以使选取的游戏对象在眼前显现出来)。图1.17(3)拖动红色的x轴可以让Player对象倒立起来,但是更好的方法是在Inspector面板中改变x轴的rotation值。如果Inspector面板中Transform旁边的灰箭头尚未打开(见图1.18),就展开它,然后将Rotation下面的x值改成180。PLayer对象就会倒立起来了。图1.18(4)当点击Play按钮测试游戏时,演示程序中的Player对象就会以电动摇摆舞风格来移动。这些机器人被吓坏了,以“错误!不能计算!”的方式来保持他们机械的步伐。4.Layers和Layout下拉菜单

可以在Inspector面板上方看到Layers(层)和Layout(布局)下拉菜单,见图1.19。和Photoshop或Flash类似,可以将游戏对象分层。在Layout下拉菜单中存储了一些常用的布局(我设置的是“2 by 3”配置)。你也可以保存并加载自己的自定义布局。图1.195.播放控件

这三个按钮可以帮助你测试游戏,并控制播放。正如你所看到的,“播放”(Play)按钮用于开始和停止游戏。“暂停”(Pause)按钮按预期工作——它用于暂停游戏,这样你就可以立刻在运行中进行更改。第三个按钮是单步调试(Step-Through)控件;使用它一帧一帧地推进游戏,这样就可以更严格地控制发生了什么。

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载