ImageVerifierCode 换一换
格式:DOCX , 页数:47 ,大小:5.91MB ,
资源ID:10734586      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10734586.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于Unity3D的塔防游戏的研究与实现.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于Unity3D的塔防游戏的研究与实现.docx

1、基于Unity3D的塔防游戏的研究与实现 本科毕业设计(论文)基于Unity3D的塔防游戏的研究与实现Research and Implementation of Tower Defense Game Based on Unity3D院 (系) 专 业 班 级 学 号 学生姓名 指导教师 提交日期 毕业设计(论文)原创性声明 本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行的设计(研究)工作及取得的成果,论文中引用他人的文献、数据、图件、资料均已明确标注出,论文中的结论和结果为本人独立完成,不包含他人已经发表或撰写的作品及成果。对本文的研究作出贡献的个人和集体,均已在

2、论文中作了明确的说明。本人完全意识到本声明的法律结果由本人承担。 毕业论文作者(签字): 签字日期: 年 月 日成绩评定成绩项论文成绩(百分制)折合比例实得成绩(折合分)指导教师成绩30%评阅教师成绩20%答辩成绩50%总评成绩注:毕业设计(论文)成绩按百分制评定。答辩成绩不及格的(评分低于60分的),则该毕业设计(论文)总评成绩为答辩成绩。摘 要21世纪20年代,游戏已经成为了大众经常选择的娱乐方式。其中,Unity3D作为时下热门的游戏开发引擎,不仅功能完善易上手,还可以免费使用成本低,理所当然的被许多游戏开发者所使用。Unity3D作为一款全面整合的专业游戏引擎,可以让开发者轻轻松松的去

3、创建3D游戏、建筑可视化、实时3D动画等功能,其优秀的跨平台性使得Unity3D可以运行在包括但不只含于Windows、Android和Mac等平台。 本次的毕业设计,将实现windows平台游戏的开发,使用Unity3D游戏开发工具,编写代码为C#语言,开发制作一款名为方块防线3D塔防游戏,并在制作的过程中将对项目的需求、游戏的设计和具体的实习方法进行分析。关键词:塔防 3D游戏 Unity3D Windows平台AbstractIn the 2020s, games have become a popular entertainment method. Among them, Unity3

4、D, as a popular game development engine, not only has perfect functions and easy to use, but also can be used for free and with low cost. Of course, it is used by many game developers. As a fully integrated professional game engine, Unity3D allows developers to easily create 3D games, architectural

5、visualization, real-time 3D animation and other functions. Its excellent cross-platformity allows Unity3D to run on but not only on Windows , Android and Mac platforms.This graduation project will realize the development of windows platform games. Use Unity3D game development tools, write code for C

6、 # language, develop and produce a 3D tower defense game called Cube Tower Defense, and in the process of making Analysis of project requirements, game design and specific internship methods.Key Words:Tower defense;3D games;Unity3D;Windows platform第1章绪 论1.1引言 游戏,最早出现记录的游戏是一款电子游戏,其为一款井字棋游戏,需要在真空管计算机上

7、运行。1970年,电子游戏作为一种商业娱乐媒体被引入日本、美国、欧洲,使其成为了娱乐工业的重要基础,并在1983年的美国游戏业萧条事件及继而重生后的两年中,得到了飞速的成长,继而成为了除电影业外最获利的娱乐产业。随着计算机的发展、个人电脑的新陈换代,游戏的分类也多了起来,3D游戏作为新兴的一大板块,随着第一款3D游戏夜晚驾驶者的诞生,也随之被大众所知,从而蓬勃发展。 Unity3D、虚幻、Gamebryo作为近代游戏开发者常用的游戏开发引擎,出自其中的游戏数不胜数,比如国内耳熟能详的古剑奇谭系列、仙剑奇侠传系列,又比如国外的刺客信条系列、绝地求生:大逃杀等。 1.2 Unity3D介绍 1.2

8、.1 Unity3D简介 Unity3D也简称Unity,是由Unity Technologies公司开发的一个全面整合的综合型游戏开发工具。有着多个优秀的特点:智能界面设计、专业的物理引擎、友好的开发工具、多种实用系统、优秀的渲染引擎、可视化的脚本语言u、可观的市场空间、方便的分享社区和支持多种格式导入资源。 Unity的中文意思为“团结”,Unity公司提出的口号为“大众游戏开发”(Democratizing Development)意在告诉我们任何人都可以去学习并且制作游戏,也是告诉我们游戏的开发需要团队的合作与配合。 1.2.2 Unity3D的特色 智能的界面设计:可视化的模式让使用

9、者轻松使用,而提供直观的图形化程序接口可以让开发者实现边玩边开发游戏,还可以实时修改游戏内容。 专业的物理引擎:支持NVIDIA PhysX物理引擎,可模拟多种物理效果,使人物的动作和互动更加逼真,其视觉效果更加突出,逼真、高度互动的特性将让你的游戏体验更加完美。 友好的开发工具:包含GPU事件探查器、音频处理API等,脚本编辑支持C#、JavaScript、Boo三种脚本语言。 多种实用系统:灯光照明系统、路径寻找与人群仿真系统、粒子系统、地形编辑器、Team License协同开发系统等,可以使得开发者更加方便快效的制作游戏。优秀的渲染引擎:渲染底层支持DirectX和OpenGL,为大型

10、游戏的制作提供基础。可视化的脚本语言u:实现了强大且方便的人机交互功能。可观的市场空间:其跨平台的特性,使得Unity可在Windows、Android、iOS等多种平台上占据一定市场空间。方便的分享社区:Unity的社区中有着许多可以的素材、资源、教程,可以下载学习使用,也可以分享自己的经验,一起互相学习。支持多种格式导入资源:整合多种DCC文件格式,包含3dsMax,Maya,Lightwave,Collade等文档,可直接拖拽到Unity中。 1.3 C#脚本语言介绍 本次游戏开发使用的是Unity支持的3种脚本编程语言中的C#脚本语言C#是一种最新的、面向对象的编程语言,读作C sha

11、rp。C#是由C和C+衍生出来的,并且具有安全、稳定、简单的特点,可快速地编写各种基于Microsoft.NET平台的应用程序。1.4市场分析与意义Unity3D作为主流游戏引擎中最为容易上手的引擎,并且可以免费使用其中个人版和社区版,Unity3D中很多功能都是成体系的,比如物理效果、碰撞检测、自动寻路、场景搭建,熟悉操作代码之后就可以自主开发游戏,Unity3D优秀的跨平台性更是让我们可以不局限仅仅Android平台或者仅仅Windows平台,还有着Unity平台上丰富的插件,物件碎裂的特效、场景破坏和变形的特效等等,都可以在Unity的插件中找到对应功能的插件,使得开发者更加方便快速的开

12、发出更好的游戏作品。 近代,虽然随着休闲时间碎片化、智能手机普及率提高,可以方便游玩的手机游戏的市场规模有着明显的巨大增长,但是电脑作为游戏行业争斗最为持久激烈的战场,个人游戏开发者和游戏公司也在近几年游戏的发展中,开发技术渐渐的成熟,3D游戏的开发技术更加成熟,pc(Personal Computer)端游戏的市场已然进入了成熟期,而Windows系统作为个人电脑中最为普遍安装的系统,运行于Windows平台的游戏数量更是如汪海一般,用户一般也是游戏爱好者,随着游戏的发展,人们对于游戏产品将更加强调画面精致、玩法硬核、精品化,质量成为竞争的核心,市场呈现出了“少而精”的特征,其中视觉上表现力

13、更丰富、代入感更强的3D游戏更是如此。行业内部竞争的日益激烈,再加上手机游戏市场的冲击,使得表现出色的老品牌游戏的支持度和市场份额更高、支持率更高如GTA、使命召唤、刺客信条等,但是市场需求依然存在,绝地求生的大火、港诡实录热卖、龙之谷的重燃,也在说明了pc端3D游戏市场仍然符合用户需求。1.5项目的简介 本篇论文的主要构思为3D类塔防游戏方块防线,是一款电脑按照一条或多条既定路线前进,抵达玩家的需要守护的基地,期间玩家需要通过鼠标点击可操作的地面并且支付资源来建造塔,利用初始资源和游戏过程中所获得资源抵挡住电脑的进攻,传统的电脑进行进攻,玩家则进行防守模式的塔防游戏。 游戏的平台定在Wind

14、ows平台。通过Unity3D的游戏开发工具及其提供的插件工具,基本可以实现这个游戏的初步制作,再使用C# 语言和Visual Studio 2019编译工具,编写各个脚本的代码,让游戏所需要的操作、功能和碰撞效果、NGUI界面、粒子特效得以实现。第2章Unity3D界面及基本操作 2.1 Unity3D的界面 打开我们已经下载安装好的Unity3D软件,打开软件需要正在联网,登陆已注册账号,选择右上角的+new进行创建项目 图2.1创建项目进入我们的项目,可以发现一共有5个主要区域: Hierarchy View(游戏对象层级面板):包含了每一个当前场景的所有游戏对象,鼠标拖动可以自由改变他

15、们的层级。在这里,可以选中游戏对象进行修改属性、添加组件,也可以鼠标右击进行创建新的游戏对象。图2.2 Hierarchy View(游戏对象层级面板)Project View(项目资源列表):显示可用的资源列表,包括脚本、贴图、模型、场景等文件,并且这些文件都组织到一个Assets文件夹中,Assets文件夹包含创建或导入的所有文件资源,开发者可以在这里访问和管理资源。图2.3 Project View(项目资源列表)Inspector View(对象属性面板):显示已选定的游戏对象的所有组件及其属性,脚本也是一种组件。选中游戏对象之后,会在这个界面显示出对应的可修改属性,也可以点击属性面板

16、的add按钮添加需要的组件。图2.4 Inspector View(对象属性面板) Scene View(场景面板):游戏世界以及关卡的一个可视化表示,可对游戏对象进行编辑的可视化区域。此界面允许操作者通过鼠标和各种快捷键进行快速的对游戏对象进行拖拉、复制、删除等操作。图2.5 Scene View(场景面板) Game View (游戏面板):显示最终成果的游戏运行画面,可设置不同的分辨率查看运行情况。点击上方的播放游戏运行后,可以直接观察到游戏的最终运行情况。图2.6 Game View (游戏面板) 2.2 Unity3D的基本操作2.2.1 Unity3D菜单栏 Unity3D菜单栏一

17、共有7个菜单栏,分别是 File(文件)、Edit(编辑)、Assets(资源)、GameObject(游戏对象)、Component(组件)、Window(窗口)和 Help(帮助)。图2.7 Unity3D菜单栏File菜单主要用于打开、创建、保存场景和项目,也包括打包和发布游戏; Edit菜单用于对场景对象进行复制、粘贴、撤销、重做等基本操作以及对项目的登陆、退出等相关设置;Assets菜单主要是对资源进行新建、导入、导出等功能; GameObject菜单主要是对游戏对象进行操作,如创建、显示、移动等; Component菜单主要是在开发过程中为游戏物体添加组件或属性; Window菜单

18、主要是用于显示Scene、Game和 Inspector等窗口。2.2.2 Unity3D工具栏Unity3D的工具栏中一共有13个常用工具图2.8 Unity上方的工具栏分别是 :1移动场景视图画面的平移窗口工具;2针对单个或两个轴向做位移的位移工具、旋转工具、缩放工具;3常在设计UI界面时用于设定矩形选框的设定矩形选框工具;在以对象中心轴线或者以网格轴线之间切换作为参考轴做移动、旋转及缩放之中切换的工具;5在控制对象本身的轴向、控制世界坐标的轴向之间切换的工具;6播放游戏;暂停游戏;单步执行;设定图层的图层下拉列表;选择或自定义 Unity 3D 的页面布局的页面布局下拉列表。2.2.3

19、Unity3D常用快捷键F:在Scene面板快速显示到你选中的游戏对象,并且将其居中F2:对当前选中的项目、游戏对象进行重命名Delete:删除选中对象CTRL+D:复制当前选中的项目、游戏对象ALT+鼠标左键:旋转当前场景ALT+鼠标中键:平移当前场景ALT+鼠标右键:缩放可见视野第3章游戏策划 3.1 游戏的简要介绍 本论文将介绍我是如何使用Unity3D软件设计出一款传统塔防类的3D游戏方块防线。开始游戏时,会在一定时间内会多次生成怪物,一次会有一个或多个怪物,怪物会通过既定的路线前进,最终会成功抵达玩家守护的基地,若是怪物的前进没有被玩家成功阻挠,抵达基地的时候,玩家将会失败,相反,成

20、功阻止全部怪物的前进,即可通关游戏。游戏开局时,玩家会获得有限的游戏资源或者说金币进行建造炮塔,可以在游戏界面右方选择需要建造的炮塔,在可建造的空格上面建造和升级炮塔,炮塔会对范围的怪物进行攻击,怪物受到一定的伤害将会被击倒,以此来对怪物的前进进行阻挠。游戏的地图由Unity3D可选的游戏对象Cube和自行寻找的一些贴图及模型进行建构,游戏中的天空盒子也为Unity默认的天空盒子。游戏使用的是第三人称视角,通过Unity的摄像机拍摄出来画面,呈现给玩家,摄像机可通过W、A、S、D和鼠标滚轮进行移动及缩放视角。UI的设计使用了Unity中的GUI Textture、GUI Label、GUi B

21、utton等形式。音效方面,为开始界面的点击效果、游戏进行中的背景音、炮弹和游戏对象被击倒的效果等配置了合适的音效。游戏设计的场景较少,仅有开始场景、选关场景、关卡1、关卡2这四个场景。开始场景主要是通过UI系统显示出开始游戏和退出游戏,选关场景也是简单的使用UI系统显示出关卡1、2。游戏场景就是关卡1、2,通过添加材质、模型和进行适当的修改,导入了所需要的游戏对象,如组成地面路径的方块、怪物生成点和基地的模型等。虽然场景较少,但是作为一款塔防类游戏所需的功能基本可以实现,也可以证实了基于Unity3D的塔防游戏的研究与实现是可行的。 3.2 背景与情节 游戏讲述了玩家前往新发现的地域建造基地

22、,但是这种行为惹怒了当地的不明生物,使得玩家还处于新生状态的基地遭到了不明生物的进攻,为了尽量的守护住基地,也为了不让自己被挂上失职的罪名,作为队长的玩家需要利用基地的有限资源,搭建出足够对付敌方进攻的炮塔防线,阻挡住怪物的进攻,守护基地和饭碗之战就此展开。 3.3游戏的炮塔、怪物和场景的素材与设计 3.3.1炮塔的设计 游戏中目前可选炮塔只有6种,分别是3种基础的炮塔和3种对应的升级后的炮塔,为了体现基础的炮塔有进行升级过的视觉效果,升级后的炮塔模型需要通过基础的炮塔为模型基础进行修改。炮塔的建造和升级都需要一定的金钱,而炮塔无论有没有升级,其攻击力和攻击范围都不会变化,但是为了让炮塔与炮塔

23、之间有着属性的差异,基础型及其升级型的属性需要不一样,所以基础型的炮塔之间的攻击力需要不相同,升级后的炮塔的攻击速度要比未升级的炮塔的攻击速度高。攻击速度为每秒攻击几次攻击速度的提升,意味着伤害也提升了,就不再提高升级型的攻击力了。炮塔的设计如下:表3.1 炮塔属性表初始外形攻击力建造资源攻击速度升级外形攻击力升级资源攻击速度攻击范围30100230703.381002000.71006011050150150801.416 3.3.2怪物的设计 游戏中目前设置了4种怪物,虽然怪物模型只有3种,但模型为蜘蛛型的怪物拥有两种材质,可以作为两种怪物,其它两种还有巨怪型和蛇怪型。为了体现怪物之间的差

24、异性,每种怪物移动速度、生命都要有不一样的数值,而为了给游戏的通关增加难度,需要有数值较高的怪物,所以有的怪物需要生命值偏高,有的怪物就移动速度偏高。怪物的外形与属性的详细设计如下:表3.2 怪物属性表怪物外观生命移动速度50095501280010120083.3.3游戏场景设计 游戏场景是使用了Unity里自带的游戏对象Cube(方块)作为基础的地形,然后在方块上面添加不同的材质和模型,以成为较为可观的地图,怪物的前进路径也是使用了Cube来构建。图3.1 未添加材质与模型 图3.2 添加材质与模型后 3.4 游戏操作方法 游戏采用非常简单的操作方式,主要以鼠标操作为主,与传统的塔防游戏操

25、作相似,具体的操作如下所示:1鼠标左键:进行选中确定2鼠标滚轮:拉进和拉远游戏视角3W键:控制视角向上移动4S键:控制视角向下移动5A键:控制视角向左移动6D键:控制视角向右移动第4章游戏的设计与实现 4.1 准备游戏工程 首先我们需要准备好Unity3D软件和Visual Studio编译工具。联网并且打开Unity3D,经过登陆的操作之后,点击右上角的+New按钮,进行创建新的项目,项目名字就为Tower Defense吧,在项目类型中选择3D类型,工程路径就默认Unity工程路径,统计功能选择关闭,开始创建。图4.1.1开始创建游戏项目 进入正式的开发界面,首先在Project面板上的A

26、ssets文件夹下面新建一个Senses文件夹用来保存场景,然后通过File菜单栏新建一个场景名为MainLV1保存在Senses文件夹。这时候我们发现场景中只有摄像机和光照两个对象,继续在Hierarchy面板上鼠标右击选择3D Object-Plane进行创建一个平面作为背景,选中Plane,在Inspector面板上面选择Transform组件的右上角齿轮状的菜单下的reset进行重置一下属性,并且把Scale的X、Z改为300以放大背景。再新建一个Material文件夹来保存材质,右键新建一个材质球名为Plane,并且修改材质球的颜色,拖拉到plane对象上面。图4.1.2 作为背景的

27、Plane的Transform组件属性图4.1.3材质球的颜色属性 4.2地图的设计 本次项目将利用Unity自带的Cube来创建基础的地图,首先还是新建一个文件夹名为Prefab进行保存预制体,然后新建一个Cube(方块)物体,并且重命名为MapCube,一样是重置一下三维和位置属性,Scale属性的x、z改为4,并将修改后的拖拉到我们的Prefab文件夹,成为预制体以便使用。然后新建一个空物品Create Empty,重命名为MapCube,作为Cube物品的父级,以便管理。图4.2.1便于管理的MapCube 选中我们的修改后的方块,使用Ctrl+D快捷键进行复制,并且使用工具栏中的位移

28、工具并且位移过程中按住Ctrl键可一单位一单位的进行位移,复制足够多的方块,以构成基本的地图。然后,选择一定数量的连续的方块进行删除,将以此空白处制作怪物的前进的路径,同样是使用Cube物品,先是创建空物品名为RoadCube作为父级,在其下创建新Cube物品名为RoadCube同时制成预制体,其次是根据实际路径复制多个RoadCube方块,根据路径的大小进行属性上的调整、大小和位置的微调,并且给予不一样颜色的材质球以区分。最后是将进行起点和终点的制作,同样,我们也是使用cube物品,以上方为起点,下方为终点,制作两个较大的方块,分别名为Start和End,修改它们的属性并制成预制体。图4.2

29、.2由方块组成的最基本的地图 最后是导入我们的模型素材,让地图不那么的单调枯燥。导入完成后,把我们需要的材质贴图,拖拉到我们的MapCube、RoadCube预制体上去,并且进行适当的修改,并且使用适当的植被、建筑模型进行修改大小,方向等属性来装饰地图,最后吧Start和End通过把属性最左上方的号取消掉来隐藏掉。图4.2.3关卡1的地图图4.2.4关卡2的地图4.3模型和材质的导入 Unity中可以通过Assert菜单中的Import Package我们的准备好的素材和模型,导入的模型自动生成Assert文件夹里面,需要使用时可直接从文件夹拖拉到场景或者面板中。Unity可识别使用多种格式的

30、模型,多种导入的格式,不可谓不方便,我们可以选择在网上或者自己制作模型,但是因为我并不熟悉模型的制作,所以使用了网上的素材、模型。4.4怪物及其脚本设计 4.4.1怪物的移动 第一步是创建路径点,首先创建空物体WayPoint并且复制多个,分别移动至路径每一个拐角的中心,然后归到一个父级空物体WayPoints方便管理。接着新建脚本WayPoint,绑定在父级的WayPoints游戏对象上,脚本实现把所有的路径点遍历一次,生成一个路径点的数组,以便读取使用。图4.4.1 生成路径点数组的脚本WayPoint 最后还是新建一个Enemy脚本,绑定在每一个需要使用的怪物的预制体上,并在脚本中实现:

31、读取已生成的路径点数组和赋予怪物速度,并且让怪物按照路径点进行移动和转向,怪物在抵达终点时,脚本会调用方法把怪物销毁。移动的过程中,因为是网上的素材,所以直接在怪物的属性面板上选择素材自带的移动动画进行循环播放。图4.4.2 Enemy脚本的怪物移动部分图4.4.3 Enemy脚本的怪物移动部分4.4.2怪物的生成首先把需要使用的怪物模型素材准备好,并且根据地图调整模型大小,制成预制体备用,然后新建脚本Wave,实现存放每一波怪物的生成属性:游戏对象、个数、生成间隔。图4.4.4保存怪物生成属性的Wave脚本第二步,创建一个空物体GameManager以用来存放和管理脚本,继续新建一个脚本EnemySpawner,脚本需要实现:根据Wave脚本设定的属性

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1