基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx

上传人:b****3 文档编号:7861750 上传时间:2023-05-09 格式:DOCX 页数:47 大小:5.91MB
下载 相关 举报
基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx_第1页
第1页 / 共47页
基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx_第2页
第2页 / 共47页
基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx_第3页
第3页 / 共47页
基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx_第4页
第4页 / 共47页
基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx_第5页
第5页 / 共47页
基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx_第6页
第6页 / 共47页
基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx_第7页
第7页 / 共47页
基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx_第8页
第8页 / 共47页
基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx_第9页
第9页 / 共47页
基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx_第10页
第10页 / 共47页
基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx_第11页
第11页 / 共47页
基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx_第12页
第12页 / 共47页
基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx_第13页
第13页 / 共47页
基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx_第14页
第14页 / 共47页
基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx_第15页
第15页 / 共47页
基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx_第16页
第16页 / 共47页
基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx_第17页
第17页 / 共47页
基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx_第18页
第18页 / 共47页
基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx_第19页
第19页 / 共47页
基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx_第20页
第20页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx

《基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx(47页珍藏版)》请在冰点文库上搜索。

基于Unity3D的塔防游戏的研究与实现Word文档下载推荐.docx

评阅教师成绩

20%

答辩成绩

50%

总评成绩

注:

毕业设计(论文)成绩按百分制评定。

答辩成绩不及格的(评分低于60分的),则该毕业设计(论文)总评成绩为答辩成绩。

摘要

21世纪20年代,游戏已经成为了大众经常选择的娱乐方式。

其中,Unity3D作为时下热门的游戏开发引擎,不仅功能完善易上手,还可以免费使用成本低,理所当然的被许多游戏开发者所使用。

Unity3D作为一款全面整合的专业游戏引擎,可以让开发者轻轻松松的去创建3D游戏、建筑可视化、实时3D动画等功能,其优秀的跨平台性使得Unity3D可以运行在包括但不只含于Windows、Android和Mac等平台。

本次的毕业设计,将实现windows平台游戏的开发,使用Unity3D游戏开发工具,编写代码为C#语言,开发制作一款名为《方块防线》3D塔防游戏,并在制作的过程中将对项目的需求、游戏的设计和具体的实习方法进行分析。

关键词:

塔防3D游戏Unity3DWindows平台

Abstract

Inthe2020s,gameshavebecomeapopularentertainmentmethod.Amongthem,Unity3D,asapopulargamedevelopmentengine,notonlyhasperfectfunctionsandeasytouse,butalsocanbeusedforfreeandwithlowcost.Ofcourse,itisusedbymanygamedevelopers.Asafullyintegratedprofessionalgameengine,Unity3Dallowsdeveloperstoeasilycreate3Dgames,architecturalvisualization,real-time3Danimationandotherfunctions.Itsexcellentcross-platformityallowsUnity3DtorunonbutnotonlyonWindows,AndroidandMacplatforms.

Thisgraduationprojectwillrealizethedevelopmentofwindowsplatformgames.UseUnity3Dgamedevelopmenttools,writecodeforC#language,developandproducea3Dtowerdefensegamecalled"

CubeTowerDefense"

andintheprocessofmakingAnalysisofprojectrequirements,gamedesignandspecificinternshipmethods.

KeyWords:

Towerdefense;

3Dgames;

Unity3D;

Windowsplatform

第1章绪论

1.1引言

游戏,最早出现记录的游戏是一款电子游戏,其为一款井字棋游戏,需要在真空管计算机上运行。

1970年,电子游戏作为一种商业娱乐媒体被引入日本、美国、欧洲,使其成为了娱乐工业的重要基础,并在1983年的美国游戏业萧条事件及继而重生后的两年中,得到了飞速的成长,继而成为了除电影业外最获利的娱乐产业。

随着计算机的发展、个人电脑的新陈换代,游戏的分类也多了起来,3D游戏作为新兴的一大板块,随着第一款3D游戏《夜晚驾驶者》的诞生,也随之被大众所知,从而蓬勃发展。

Unity3D、虚幻、Gamebryo作为近代游戏开发者常用的游戏开发引擎,出自其中的游戏数不胜数,比如国内耳熟能详的《古剑奇谭》系列、《仙剑奇侠传》系列,又比如国外的《刺客信条》系列、《绝地求生:

大逃杀》等。

1.2Unity3D介绍

1.2.1Unity3D简介

Unity3D也简称Unity,是由UnityTechnologies公司开发的一个全面整合的综合型游戏开发工具。

有着多个优秀的特点:

智能界面设计、专业的物理引擎、友好的开发工具、多种实用系统、优秀的渲染引擎、可视化的脚本语言u、可观的市场空间、方便的分享社区和支持多种格式导入资源。

Unity的中文意思为“团结”,Unity公司提出的口号为“大众游戏开发”(DemocratizingDevelopment)意在告诉我们任何人都可以去学习并且制作游戏,也是告诉我们游戏的开发需要团队的合作与配合。

1.2.2Unity3D的特色

①智能的界面设计:

可视化的模式让使用者轻松使用,而提供直观的图形化程序接口可以让开发者实现边玩边开发游戏,还可以实时修改游戏内容。

②专业的物理引擎:

支持NVIDIAPhysX物理引擎,可模拟多种物理效果,使人物的动作和互动更加逼真,其视觉效果更加突出,逼真、高度互动的特性将让你的游戏体验更加完美。

③友好的开发工具:

包含GPU事件探查器、音频处理API等,脚本编辑支持C#、JavaScript、Boo三种脚本语言。

④多种实用系统:

灯光照明系统、路径寻找与人群仿真系统、粒子系统、地形编辑器、TeamLicense协同开发系统等,可以使得开发者更加方便快效的制作游戏。

⑤优秀的渲染引擎:

渲染底层支持DirectX和OpenGL,为大型游戏的制作提供基础。

⑥可视化的脚本语言u:

实现了强大且方便的人机交互功能。

⑦可观的市场空间:

其跨平台的特性,使得Unity可在Windows、Android、iOS等多种平台上占据一定市场空间。

⑧方便的分享社区:

Unity的社区中有着许多可以的素材、资源、教程,可以下载学习使用,也可以分享自己的经验,一起互相学习。

⑨支持多种格式导入资源:

整合多种DCC文件格式,包含3dsMax,Maya,Lightwave,Collade等文档,可直接拖拽到Unity中。

1.3C#脚本语言介绍

本次游戏开发使用的是Unity支持的3种脚本编程语言中的C#脚本语言

C#是一种最新的、面向对象的编程语言,读作 

"

Csharp"

C#是由C和C++衍生出来的,并且具有安全、稳定、简单的特点,可快速地编写各种基于Microsoft.NET平台的应用程序。

1.4市场分析与意义

Unity3D作为主流游戏引擎中最为容易上手的引擎,并且可以免费使用其中个人版和社区版,Unity3D中很多功能都是成体系的,比如物理效果、碰撞检测、自动寻路、场景搭建,熟悉操作代码之后就可以自主开发游戏,Unity3D优秀的跨平台性更是让我们可以不局限仅仅Android平台或者仅仅Windows平台,还有着Unity平台上丰富的插件,物件碎裂的特效、场景破坏和变形的特效等等,都可以在Unity的插件中找到对应功能的插件,使得开发者更加方便快速的开发出更好的游戏作品。

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

行业内部竞争的日益激烈,再加上手机游戏市场的冲击,使得表现出色的老品牌游戏的支持度和市场份额更高、支持率更高如《GTA》、《使命召唤》、《刺客信条》等,但是市场需求依然存在,《绝地求生》的大火、《港诡实录》热卖、《龙之谷》的重燃,也在说明了pc端3D游戏市场仍然符合用户需求。

1.5项目的简介

本篇论文的主要构思为3D类塔防游戏《方块防线》,是一款电脑按照一条或多条既定路线前进,抵达玩家的需要守护的基地,期间玩家需要通过鼠标点击可操作的地面并且支付资源来建造塔,利用初始资源和游戏过程中所获得资源抵挡住电脑的进攻,传统的电脑进行进攻,玩家则进行防守模式的塔防游戏。

游戏的平台定在Windows平台。

通过Unity3D的游戏开发工具及其提供的插件工具,基本可以实现这个游戏的初步制作,再使用C#语言和VisualStudio2019编译工具,编写各个脚本的代码,让游戏所需要的操作、功能和碰撞效果、NGUI界面、粒子特效得以实现。

第2章Unity3D界面及基本操作

2.1Unity3D的界面

打开我们已经下载安装好的Unity3D软件,打开软件需要正在联网,登陆已注册账号,选择右上角的+new进行创建项目

图2.1创建项目

进入我们的项目,可以发现一共有5个主要区域:

①HierarchyView(游戏对象层级面板):

包含了每一个当前场景的所有游戏对象,鼠标拖动可以自由改变他们的层级。

在这里,可以选中游戏对象进行修改属性、添加组件,也可以鼠标右击进行创建新的游戏对象。

图2.2HierarchyView(游戏对象层级面板)

②ProjectView(项目资源列表):

显示可用的资源列表,包括脚本、贴图、模型、场景等文件,并且这些文件都组织到一个Assets文件夹中,Assets文件夹包含创建或导入的所有文件资源,开发者可以在这里访问和管理资源。

图2.3ProjectView(项目资源列表)

③InspectorView(对象属性面板):

显示已选定的游戏对象的所有组件及其属性,脚本也是一种组件。

选中游戏对象之后,会在这个界面显示出对应的可修改属性,也可以点击属性面板的add按钮添加需要的组件。

图2.4InspectorView(对象属性面板)

④SceneView(场景面板):

游戏世界以及关卡的一个可视化表示,可对游戏对象进行编辑的可视化区域。

此界面允许操作者通过鼠标和各种快捷键进行快速的对游戏对象进行拖拉、复制、删除等操作。

图2.5SceneView(场景面板)

⑤GameView(游戏面板):

显示最终成果的游戏运行画面,可设置不同的分辨率查看运行情况。

点击上方的播放游戏运行后,可以直接观察到游戏的最终运行情况。

图2.6GameView(游戏面板)

2.2Unity3D的基本操作

2.2.1Unity3D菜单栏

Unity3D菜单栏一共有7个菜单栏,分别是File(文件)、Edit(编辑)、Assets(资源)、GameObject(游戏对象)、Component(组件)、Window(窗口)和Help(帮助)。

图2.7Unity3D菜单栏

①File菜单主要用于打开、创建、保存场景和项目,也包括打包和发布游戏;

②Edit菜单用于对场景对象进行复制、粘贴、撤销、重做等基本操作以及对项目的登陆、退出等相关设置;

③Assets菜单主要是对资源进行新建、导入、导出等功能;

④GameObject菜单主要是对游戏对象进行操作,如创建、显示、移动等;

⑤Component菜单主要是在开发过程中为游戏物体添加组件或属性;

⑥Window菜单主要是用于显示Scene、Game和Inspector等窗口。

2.2.2Unity3D工具栏

Unity3D的工具栏中一共有13个常用工具

图2.8Unity上方的工具栏

分别是:

1移动场景视图画面的平移窗口工具;

2针对单个或两个轴向做位移的位移工具、旋转工具、缩放工具;

3常在设计UI界面时用于设定矩形选框的设定矩形选框工具;

④在以对象中心轴线或者以网格轴线之间切换作为参考轴做移动、旋转及缩放之中切换的工具;

5在控制对象本身的轴向、控制世界坐标的轴向之间切换的工具;

6播放游戏;

暂停游戏;

单步执行;

⑦设定图层的图层下拉列表;

⑧选择或自定义Unity3D的页面布局的页面布局下拉列表。

2.2.3Unity3D常用快捷键

①F:

在Scene面板快速显示到你选中的游戏对象,并且将其居中

②F2:

对当前选中的项目、游戏对象进行重命名

③Delete:

删除选中对象

④CTRL+D:

复制当前选中的项目、游戏对象

⑤ALT+鼠标左键:

旋转当前场景

⑥ALT+鼠标中键:

平移当前场景

⑦ALT+鼠标右键:

缩放可见视野

第3章游戏策划

3.1游戏的简要介绍

本论文将介绍我是如何使用Unity3D软件设计出一款传统塔防类的3D游戏——《方块防线》。

开始游戏时,会在一定时间内会多次生成怪物,一次会有一个或多个怪物,怪物会通过既定的路线前进,最终会成功抵达玩家守护的基地,若是怪物的前进没有被玩家成功阻挠,抵达基地的时候,玩家将会失败,相反,成功阻止全部怪物的前进,即可通关游戏。

游戏开局时,玩家会获得有限的游戏资源或者说金币进行建造炮塔,可以在游戏界面右方选择需要建造的炮塔,在可建造的空格上面建造和升级炮塔,炮塔会对范围的怪物进行攻击,怪物受到一定的伤害将会被击倒,以此来对怪物的前进进行阻挠。

游戏的地图由Unity3D可选的游戏对象Cube和自行寻找的一些贴图及模型进行建构,游戏中的天空盒子也为Unity默认的天空盒子。

游戏使用的是第三人称视角,通过Unity的摄像机拍摄出来画面,呈现给玩家,摄像机可通过W、A、S、D和鼠标滚轮进行移动及缩放视角。

UI的设计使用了Unity中的GUITextture、GUILabel、GUiButton等形式。

音效方面,为开始界面的点击效果、游戏进行中的背景音、炮弹和游戏对象被击倒的效果等配置了合适的音效。

游戏设计的场景较少,仅有开始场景、选关场景、关卡1、关卡2这四个场景。

开始场景主要是通过UI系统显示出开始游戏和退出游戏,选关场景也是简单的使用UI系统显示出关卡1、2。

游戏场景就是关卡1、2,通过添加材质、模型和进行适当的修改,导入了所需要的游戏对象,如组成地面路径的方块、怪物生成点和基地的模型等。

虽然场景较少,但是作为一款塔防类游戏所需的功能基本可以实现,也可以证实了基于Unity3D的塔防游戏的研究与实现是可行的。

3.2背景与情节

游戏讲述了玩家前往新发现的地域建造基地,但是这种行为惹怒了当地的不明生物,使得玩家还处于新生状态的基地遭到了不明生物的进攻,为了尽量的守护住基地,也为了不让自己被挂上失职的罪名,作为队长的玩家需要利用基地的有限资源,搭建出足够对付敌方进攻的炮塔防线,阻挡住怪物的进攻,守护基地和饭碗之战就此展开。

3.3游戏的炮塔、怪物和场景的素材与设计

3.3.1炮塔的设计

游戏中目前可选炮塔只有6种,分别是3种基础的炮塔和3种对应的升级后的炮塔,为了体现基础的炮塔有进行升级过的视觉效果,升级后的炮塔模型需要通过基础的炮塔为模型基础进行修改。

炮塔的建造和升级都需要一定的金钱,而炮塔无论有没有升级,其攻击力和攻击范围都不会变化,但是为了让炮塔与炮塔之间有着属性的差异,基础型及其升级型的属性需要不一样,所以基础型的炮塔之间的攻击力需要不相同,升级后的炮塔的攻击速度要比未升级的炮塔的攻击速度高。

攻击速度为每秒攻击几次攻击速度的提升,意味着伤害也提升了,就不再提高升级型的攻击力了。

炮塔的设计如下:

表3.1炮塔属性表

初始外形

攻击力

建造资源

攻击速度

升级外形

升级资源

攻击范围

30

100

2

70

3.3

8

200

0.7

60

1

10

50

150

80

1.4

16

3.3.2怪物的设计

游戏中目前设置了4种怪物,虽然怪物模型只有3种,但模型为蜘蛛型的怪物拥有两种材质,可以作为两种怪物,其它两种还有巨怪型和蛇怪型。

为了体现怪物之间的差异性,每种怪物移动速度、生命都要有不一样的数值,而为了给游戏的通关增加难度,需要有数值较高的怪物,所以有的怪物需要生命值偏高,有的怪物就移动速度偏高。

怪物的外形与属性的详细设计如下:

表3.2怪物属性表

怪物外观

生命

移动速度

500

9

550

12

800

1200

3.3.3游戏场景设计

游戏场景是使用了Unity里自带的游戏对象Cube(方块)作为基础的地形,然后在方块上面添加不同的材质和模型,以成为较为可观的地图,怪物的前进路径也是使用了Cube来构建。

图3.1未添加材质与模型

图3.2添加材质与模型后

3.4游戏操作方法

游戏采用非常简单的操作方式,主要以鼠标操作为主,与传统的塔防游戏操作相似,具体的操作如下所示:

1鼠标左键:

进行选中确定

2鼠标滚轮:

拉进和拉远游戏视角

3W键:

控制视角向上移动

4S键:

控制视角向下移动

5A键:

控制视角向左移动

6D键:

控制视角向右移动

第4章游戏的设计与实现

4.1准备游戏工程

首先我们需要准备好Unity3D软件和VisualStudio编译工具。

联网并且打开Unity3D,经过登陆的操作之后,点击右上角的+New按钮,进行创建新的项目,项目名字就为TowerDefense吧,在项目类型中选择3D类型,工程路径就默认Unity工程路径,统计功能选择关闭,开始创建。

图4.1.1开始创建游戏项目

进入正式的开发界面,首先在Project面板上的Assets文件夹下面新建一个Senses文件夹用来保存场景,然后通过File菜单栏新建一个场景名为MainLV1保存在Senses文件夹。

这时候我们发现场景中只有摄像机和光照两个对象,继续在Hierarchy面板上鼠标右击选择3DObject-Plane进行创建一个平面作为背景,选中Plane,在Inspector面板上面选择Transform组件的右上角齿轮状的菜单下的reset进行重置一下属性,并且把Scale的X、Z改为300以放大背景。

再新建一个Material文件夹来保存材质,右键新建一个材质球名为Plane,并且修改材质球的颜色,拖拉到plane对象上面。

图4.1.2作为背景的Plane的Transform组件属性

图4.1.3材质球的颜色属性

4.2地图的设计

本次项目将利用Unity自带的Cube来创建基础的地图,首先还是新建一个文件夹名为Prefab进行保存预制体,然后新建一个Cube(方块)物体,并且重命名为MapCube,一样是重置一下三维和位置属性,Scale属性的x、z改为4,并将修改后的拖拉到我们的Prefab文件夹,成为预制体以便使用。

然后新建一个空物品CreateEmpty,重命名为MapCube,作为Cube物品的父级,以便管理。

图4.2.1便于管理的MapCube

选中我们的修改后的方块,使用Ctrl+D快捷键进行复制,并且使用工具栏中的位移工具并且位移过程中按住Ctrl键可一单位一单位的进行位移,复制足够多的方块,以构成基本的地图。

然后,选择一定数量的连续的方块进行删除,将以此空白处制作怪物的前进的路径,同样是使用Cube物品,先是创建空物品名为RoadCube作为父级,在其下创建新Cube物品名为RoadCube同时制成预制体,其次是根据实际路径复制多个RoadCube方块,根据路径的大小进行属性上的调整、大小和位置的微调,并且给予不一样颜色的材质球以区分。

最后是将进行起点和终点的制作,同样,我们也是使用cube物品,以上方为起点,下方为终点,制作两个较大的方块,分别名为Start和End,修改它们的属性并制成预制体。

图4.2.2由方块组成的最基本的地图

最后是导入我们的模型素材,让地图不那么的单调枯燥。

导入完成后,把我们需要的材质贴图,拖拉到我们的MapCube、RoadCube预制体上去,并且进行适当的修改,并且使用适当的植被、建筑模型进行修改大小,方向等属性来装饰地图,最后吧Start和End通过把属性最左上方的√号取消掉来隐藏掉。

图4.2.3关卡1的地图

图4.2.4关卡2的地图

4.3模型和材质的导入

Unity中可以通过Assert菜单中的ImportPackage我们的准备好的素材和模型,导入的模型自动生成Assert文件夹里面,需要使用时可直接从文件夹拖拉到场景或者面板中。

Unity可识别使用多种格式的模型,多种导入的格式,不可谓不方便,我们可以选择在网上或者自己制作模型,但是因为我并不熟悉模型的制作,所以使用了网上的素材、模型。

4.4怪物及其脚本设计

4.4.1怪物的移动

第一步是创建路径点,首先创建空物体WayPoint并且复制多个,分别移动至路径每一个拐角的中心,然后归到一个父级空物体WayPoints方便管理。

接着新建脚本WayPoint,绑定在父级的WayPoints游戏对象上,脚本实现把所有的路径点遍历一次,生成一个路径点的数组,以便读取使用。

图4.4.1生成路径点数组的脚本WayPoint

最后还是新建一个Enemy脚本,绑定在每一个需要使用的怪物的预制体上,并在脚本中实现:

读取已生成的路径点数组和赋予怪物速度,并且让怪物按照路径点进行移动和转向,怪物在抵达终点时,脚本会调用方法把怪物销毁。

移动的过程中,因为是网上的素材,所以直接在怪物的属性面板上选择素材自带的移动动画进行循环播放。

图4.4.2Enemy脚本的怪物移动部分①

图4.4.3Enemy脚本的怪物移动部分②

4.4.2怪物的生成

首先把需要使用的怪物模型素材准备好,并且根据地图调整模型大小,制成预制体备用,然后新建脚本Wave,实现存放每一波怪物的生成属性:

游戏对象、个数、生成间隔。

图4.4.4保存怪物生成属性的Wave脚本

第二步,创建一个空物体GameManager以用来存放和管理脚本,继续新建一个脚本EnemySpawner,脚本需要实现:

根据Wave脚本设定的属性

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2