基于Unity3D的跨平台格斗游戏设计毕业论文 - 图文

更新时间:2024-04-26 04:37:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

毕业设计论文

基于Unity3D的跨平台格斗游戏设计

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作 者 签 名: 日 期: 指导教师签名: 日 期:

使用授权说明

本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名: 日 期:

学位论文原创性声明

本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。

作者签名: 日期: 年 月 日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日

注 意 事 项

1.设计(论文)的内容包括:

1)封面(按教务处制定的标准封面格式制作) 2)原创性声明

3)中文摘要(300字左右)、关键词 4)外文摘要、关键词 5)目次页(附件不统一编入)

6)论文主体部分:引言(或绪论)、正文、结论 7)参考文献 8)致谢

9)附录(对论文支持必要时)

2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。

3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。 4.文字、图表要求:

1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写

2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画

3)毕业论文须用A4单面打印,论文50页以上的双面打印 4)图表应绘制于无格子的页面上

5)软件工程类课题应有程序清单,并提供电子文档 5.装订顺序 1)设计(论文)

2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订

指导教师评阅书

指导教师评价: 一、撰写(设计)过程 1、学生在论文(设计)过程中的治学态度、工作精神 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、学生掌握专业知识、技能的扎实程度 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生综合运用所学知识和专业技能分析和解决问题的能力 □ 优 □ 良 □ 中 □ 及格 □ 不及格 4、研究方法的科学性;技术线路的可行性;设计方案的合理性 □ 优 □ 良 □ 中 □ 及格 □ 不及格 5、完成毕业论文(设计)期间的出勤情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 指导教师: (签名) 单位: (盖章) 年 月 日

评阅教师评阅书

评阅教师评价: 一、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 评阅教师: (签名) 单位: (盖章) 年 月 日

教研室(或答辩小组)及教学系意见

教研室(或答辩小组)评价: 一、答辩过程 1、毕业论文(设计)的基本要点和见解的叙述情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、对答辩问题的反应、理解、表达情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生答辩过程中的精神状态 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格

评定成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 教研室主任(或答辩小组组长): (签名) 年 月 日 教学系意见: 系主任: (签名) 年 月 日 I

摘要:随着科技的发展,网络的普及,电子产品的普遍流行,游戏显然已经成为人们的主要娱乐方式之一。生活节奏的加快使得人们不能再像以前那样坐在电脑前玩游戏,便于携带是手机的主要特点,手游也成为当前最热门的游戏方式之一。于此同时,Unity3D的异军突起,使手机游戏开发多了一个方向,更方便、更快捷、更加人性化的研发方式使得Unity3D成为当前主流的游戏开发引擎。手机硬件性能越来越强大,使得3D游戏在手机中得以实现。近年来,越来越多的3D游戏出现在手机屏幕上,其中不乏优秀的作品。本次毕设在前人的基础上进行学习研究,深入了解Unity3D及C#编程语言,进行3D格斗游戏的开发。本文列出了3D格斗游戏的一些功能点、关键技术,详细阐述了游戏的设计过程。 关键词:Unity3D,手机游戏开发,C#编程语言,3D格斗

Abstract:With the development of science and technology, the popularity of the network and electronic oducts , the game has apparently become one of the main forms of entertainment for people. The accelerating rhythm of life so that people can no longer sit in front of the computer to play games, portability is the main feature of the phone, Mobile phone Game has become one of the most popular games. At the same time, the emergence of Unity3D , let the mobile hone game pment in one direction, more convenient, more efficient more humane development approach makes Unity3D become the mainstream game development engine. Mobile phone hardware performance is more and more strong, the 3D can be achieved in the mobile phone game. In recent years, more and more 3D games on the mobile phone screen, many of whom are excellent works. The graduation design is studied on the basic of previous, in-depth understanding of the Unity3D and the C# programming language, 3D development of fighting games. This is a list of some functions, the key technologies of 3D fighting game, described in detail the design process of the game.

Keywords:Unity3D,mobile phone game development, C# programming language,3D fight

II

目录

一、绪论 ............................................................................. 1

(一) 手游的发展 .......................................................... 1 (二) 研究目的及意义 ...................................................... 1

(三) 论文架构 .................................................................... 2

二、游戏开发环境 .................................................................... 3

(一) Unity3D游戏引擎 ..................................................... 3 (二) NGUI ............................................................... 7 三、游戏需求分析 .................................................................... 9

(一) 游戏基本介绍 ........................................................ 9 (二) 需求分析 ............................................................ 9 (三) 场景模型的搭建 ..................................................... 10 (四) 人物动作说明 ....................................................... 12 (五) 游戏镜头控制 ....................................................... 14 (六) 加载界面 ........................................................... 14 四、游戏设计实现 ................................................................... 16

(一) 各系统界面分析 ..................................................... 16

1. 登录界面 ......................................................... 16 2. 游戏主界面 ....................................................... 17 3. 关卡选择界面 ..................................................... 19 (二) 战斗系统 ........................................................... 22 五、游戏测试 ....................................................................... 27 六、总结与展望 ..................................................................... 29

(一) 总结 ............................................................... 29 (二) 展望 ............................................................... 29 致谢 ................................................................ 错误!未定义书签。 参考文献 ............................................................ 错误!未定义书签。

III

一、 绪论

(一) 手游的发展

手游即手机上的游戏。随着移动互联网时代的到来,如今,手机除了满足大家发短信、通电话的基本需求外,玩游戏早已成为手机最重要的功能之一。手游早期为简单的文字游戏,随着手机像素、运行效率的提高,一些具备了简单彩色图形的手游开始面向用户,这类游戏大多使用JAVA语言编写实现,不论是画面,还是玩法都比上一个代提升了许多,然后是近几年的app应用,例如N-Gage, N-Gage是诺基亚在那个时代所研发的手游平台,但是由于移动网络无法很好的支持手游下载、支付渠道也稀少而复杂,N-Gage始终没能大红大紫。Android和IOS的兴起,手机在其本质工作几乎毫无进化的几年之间却在其余几乎每个领域发生了翻天覆地的变化,最简单并且最直观的一点表现就是性能参数了,手机性能参数的提高增加了应用的安装数量及功能,在这之中,手游获得的增益很大。

门槛低,投入小,回报大,是手游的主要优势,这也使很多游戏开发商纷纷转型手机游戏的开发。随着手机游戏市场的日渐升温,手游已经开始主导着整个移动互联网的发展,千万级用户,千万级收入已经不再是空话,手机行业的发展极大推动了手游的发展。近年来,手游更是有了质的飞跃,在手机行业跨越式的发展下,手机系统再也不是当年NOKIA的塞班系统, iPhone的诞生,及其开创的触屏潮流,不仅革新了用户操作手机的体验,而且也使手游脱离了物理键盘的局限,有了除“上下左右”之外的新的玩法。后来谷歌研发的安卓手机系统诞生,触屏智能更加便捷,得到了很快的普及,谷歌市场也出现了各种各样的安卓游戏,随后的几年安卓手游成疯狂的趋势增持。 (二) 研究目的及意义

小时候接触的小霸王游戏机,当时街霸对打、忍者神龟系列、刀侍等格斗游戏就非常火,此类游戏的受益群众非常多。再加上手机性能的提高,3D格斗游戏在手机上也越来越流畅,格斗游戏在以后将非常有优势。

相对页游、端游来说,手游开发在当前游戏领域还算比较少,可探索的区域还有很多,比如前一段时间挂机游戏能火也是出乎意料的结果。生活节奏的加快,碎片化的时间模式推动玩家朝手游方向靠拢,并且当前正值手机领域高速发展,这提供给玩家一个很好的游戏载体,这一机遇迫使部分游戏开发商纷纷投身手游

开发,游戏行业即将掀起一场手游风暴。 (三) 论文架构

本文共六个章节内容,主要介绍一款游戏从刚开始构思到开发完成的整个过程。

1. 第一章:绪论,简要介绍了手机游戏的发展历史,本课题的研究目的和意义。 2. 第二章:游戏开发环境,详细介绍了本次毕设的开发引擎-Unity3D界面的使

用,并且就UI界面的设计做详细的说明。

3. 第三章:游戏需求分析,列举了游戏中的一些需求点,并对游戏中出现的一

些相关技术进行说明。

4. 第四章:游戏设计实现,列举游戏中比较重要的几个系统(登陆界面、游戏

主界面、关卡选择界面、战斗系统),对其功能的实现进行脚本的说明。 5. 第五章:游戏测试,游戏项目完成后,对游戏进行测试,并提供测试数据。 6. 第六章:总结与展望,根据本毕设的开发现状,作总结与展望。

二、 游戏开发环境

(一) Unity3D游戏引擎

Unity3D是一款集三维视频游戏、建筑可视化、实时三维动画于一身的专业游戏引擎[1],其多平台性表现在它可将已完成的游戏项目打包成Windows、Mac、Wii、iPhone、Windows phone 8和Android等多种平台所对应的文件格式。具有高度优化的图形渲染管道和内建的NVIDIA PhysX物理引擎,使其能够较为真实地模拟3D物体的运动和碰撞。对DirectX和0penGL拥有高度优化的图形渲染管道,使其能够比较真实、清晰的显示各种材质、贴图。它支持大部分主要的文件格式,并能和大部分相关应用程序协同工作,使用者不再需要使用其他转换格式的软件,用起来更加方便快捷。Unity3D能够对编辑器、跨平台发布、地形编辑、着色器、脚本、网络、物理、版本控制等进行全面整合,优化使用界面,降低操作重复性,提高操作效率。这些都使Unity3D成为独一无二的游戏引擎。关于Unity3D的使用,需要了解以下几个方面的内容: 1. 主界面视图

Unity3D界面上方为菜单栏,所有功能都可以在菜单栏中找到。菜单栏下方为具有各种功能的窗口,负责游戏项目的大部分操作,可将部分用得相对频繁的窗口单独拖出来放在外面,方便使用。Hierarchy窗口、Project窗口、Console窗口、inspector窗口、Scene窗口和Game窗口为主要的窗口,具体如图2-1所示:

2-1 Unity3D主界面

(1) Hierarchy窗口主要用于放置Gameobject,可以对Gameobject进行选中、重

命名、拖动分层、添加组件等操作,并且Hierarchy的所有内容都会在scence

窗口中显示出来。

(2) Project窗口为项目工程的文件入口,游戏项目的所有文件都可以在project

中找到,进行资源替换、查找都要在这个窗口下操作。

(3) Console窗口为一个指令提示窗口,项目运行的各种情况都会在这边以

CSharp语言的形式显示出来,包括错误、警告、运行成功等,通过查看此窗口,可以轻松找出报错的根源。

(4) Inspector窗口为Gameobject的编辑窗口,包括Gameobject的坐标、大小、

附加控件及添加脚本等,一个Gameobject对应一个inspector,默认显示被选中的Gameobject的inspector窗口。

(5) Scene窗口真实地显示Hierarchy窗口中Gameobject的样式和Tranform位

置,可对Gameobject进行选中、拖动、旋转等操作。

(6) Game窗口为运行项目时所呈现出来的真实游戏效果,为映入屏幕的画面。 2. Gameobject

Gameobject就是一个容器,Unity3D中的任何组件、目标、模型都必须用Gameobject来承载,它可以是一张图片、一段单一的文字、或是一个简单的模型,取决于你给它添加什么内容。从Unity3D菜单栏的“Gameobject”中可以轻松创建一个空的Gameobject,快捷键ctrl+shift+N比较常用。如在一个空的Gameobject中添加一个Directional light(单向灯光控件),则此Gameobject就是个灯光,可在inspector窗口编辑。Gameobject支持重命名功能,使开发者能一眼就看出Gameobject内的内容,提升工作效率,Gameobject还可以嵌套子Gameobject,方便进行资源的整合。 3. Tranform(坐标)的理解

如下图inpector窗口中的Tranfrom所示,Gameobject的坐标包含“P”“R”“S”三个坐标,“P”即position,为Gameobject的位置坐标,用于控制目标的方位信息。“R”即rotate,为Gameobject的旋转坐标,调节P坐标将使目标作出相应转向。例如将上面提到的单向灯光的Tranform“R”中的X坐标从0改成90,则此灯光从横向灯变成纵向灯。“S”即scale,为Gameobject的大小坐标,控制目标的大小尺寸,x、y、z对应Gameobject的长宽高。一个Gameobject至少包含一个tranform,有且仅有一个tranform。

2-2 Gameobject中的tranform

4. 脚本系统

Unity3D提供强大的脚本系统,支持java script、C# script、boo script语言[2],本次毕设用的是C#语言,如需要让某些Gameobject实现特定功能,可通过编写C#脚本,保存起来,并将脚本拖动到Gameobject所对应的inspector窗口,这样该Gameobject就具有脚本所描述的功能。

2-3 Unity3D中的脚本文件

C#也叫做C Sharp,是一种面向对象的程序设计语言,它继承了C和C++的强大功能,并简化了C和C++的一些复杂特性,使其成为当前.NET开发的首选语言。因为它强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程,使其成为系统开发和应用开发的最佳使用语言。 5. Unity3D文件

在Unity3D中的Gameobject文件,均被保存为后缀为.perfebs文件,也是Unity3D可读取识别的文件。

做游戏项目资源是必不可少的,Unity3D自带的资源也是有限的,例如一些Unity3D里面没有的贴图、材质、animation动画等资源[3],需要通过其他途径查找,然后导入到Unity3D中使其变成可用元素。Unity3D也支持自制animation动画,在Unity3D菜单栏的“windows”中选择animation窗口进行动画的自制,将animation动画挂在Gameobject上可实现Gameobject的位移、放大缩小、渐

变或其他更高级的效果。

2-4 animation制作工具

游戏中的各种图标Texture文件需要制作成Atlas图集的形式,Unity3D提供atlas maker工具,将想要的图标素材导入到Unity3D中,然后利用atlas maker工具将素材更新到所需要的图集里。

2-5 atlas maker界面

6. Camera(镜头)

正如电影导演手中的摄像机将故事呈现给观众一样,Unity3D中的Camera用于将游戏画面呈现给玩家,即Game窗口中的内容。一个视图中至少应该放置一个镜头,否则呈现出来的画面只会是一片漆黑。镜头的放置位置也决定了游戏体验,镜头应尽量放置在能看清整个场景的位置,距离适中,太近的镜头视距太短看不到远方的路障,太远的镜头看不清前方的物体,影响游戏体验。Unity3D中新建的工程都有提供一个main camera镜头。另外,可以给镜头添加一些功能,

如animation动画,在镜头上添加具有短位移的animation动画可以使其抖动。 (二) NGUI

NGUI为Unity3D的一款界面UI设计插件,使用NGUI可以轻松完成大部分2D界面设计,下面是NGUI的一些基础控件及关键点:

1. Sprite(图片):如果要将一张图片放在界面中,需要选中一个Gameobject,然

后添加UIsprite脚本(或直接使用NGUI创建一个sprite控件),该对象的inspector窗口中即出现sprite控件栏。如图1-2所示,点击Atlas选择图集,后面为选择图集的具体图片。

2-6 UISprite脚本界面

2. Label(文本框):使用UIlabel脚本在界面中添加文字,文字颜色、大小、位置

均可自己控制,如图2-7所示:

2-7 UILabel脚本界面

3. Button(按钮):其实Button控件是由sprite、label和collider碰撞器组合而成的,

应该包含一个父Gameobject,和三个子Gameobject。Collider为碰撞器,用于响应外界对此块区域的操作。当点击此块区域时,将执行某些处理,可由脚本控制。这三个也可全部放在一个Gameobject中,但是,这样做的缺点就

是他们共用一个tranform,复用性不强。

4. Tween(动画):即动画效果,包含颜色变化、大小变化、旋转变化、深浅变化

等,类似animation动画,差别在于tween为写死的动画,没法像animation动画那样自由调节。可挂在任何对象上,并且需要选择如何触发此动画。如点击一下Button触发顶部按钮由透明变成正常颜色,这样就实现了简单的Tween动画功能。

5. Depth(深度):界面为2D界面,没法避免窗口、图片重叠的现象,depth可以

有效的将各个Gameobject分层处理。Depth值越低代表此物体越底层,将被depth值比他高的Gameobject遮挡住。

6. NGUI还提供一些例如滑动条、输入框、下拉栏等更高级的控件,在本文不涉

及到,在这里不做阐述。

三、

(一) 游戏基本介绍

游戏需求分析

本毕设为一款使用Unity3D引擎制作实现的3D格斗游戏,脚本使用C#编程语言编写,主角为大家耳熟能详的钢铁侠,游戏整体风格偏机甲类,主要玩法即格斗。

3-1 战斗界面

战斗界面如图3-1所示,玩家通过控制界面左侧的方向键(已隐藏)进行主角前后左右的移动,通过点击右边的攻击键实施攻击。游戏将给玩家带来超炫的格斗动作,逼真的打击感,通过较为真实的打击感,让玩家在游戏中感受快乐。 (二) 需求分析

设计游戏之前需要对游戏进行全面的需求分析[4],明确设计方向,然后写游戏的设计说明书,界面设计及一些功能性的东西可以参考市面上比较热门的游戏的做法,游戏将依据此份说明书进行设计。说明书应该包含游戏各个界面的介绍、每个按钮功能、以及游戏中每一步操作对应的响应方式。

需求分析完需要构建游戏的系统框架,使用导图的方式将游戏的各个系统、模块一目了然的呈现出来。如图3-2所示,利用MVC框架将游戏的各个系统界面联系起来。

3-2 游戏系统框架

(三) 场景模型的搭建

一个可用的场景模型包含两个方面的属性,一方面是模型,另一方面是阻挡。单纯从可用性来说模型一点用处都没有,但是为了让玩家知道哪边可以踩、哪边是墙壁、哪边会产生碰撞,就必须设置模型。阻挡用于限制玩家的活动区域,也就是配合模型来使用的。可以说,没有阻挡的模型是不可用的,没有模型的阻挡是不具生命力的,两者密不可分。

3-3 一个模型所包含的内容

如图3-3所示,inspector窗口中Cube(Mesh Filter)为模型组件,Box Collider为阻挡碰撞器,Center为此碰撞器的坐标位置,Size为碰撞器尺寸。Mesh Renderer是材质组件,用于帮模型添加材质、贴图。

3-4 较为成形的场景模型

1. 模型

众所周知,点成线,线成面,面成体。模型由面组合而成,模型的制作可通过3DSMAX等建模软件实现,面数越多的模型越精致,但是对系统性能的要求也越高。游戏画面是由计算机CUP和GPU实时处理演算出来的图像,面数越多对GPU的压力越大,易导致游戏画面卡,运行不流畅等情况,所以尽量选择低面数模型、优化所用模型材质能够大幅提高游戏性能。

Unity3D提供一些简单的3D模型供玩家使用,如正方体、球体、圆柱体等多种模型,实际上,他们是属于添加了模型组件的Gameobject,这些模型可用于当做战斗场景,可以通过调节这些模型的长宽高来匹配场景人物模型的大小。 2. 阻挡

Unity3D自带一些简单形状的阻挡,如box collider、mesh collider碰撞器。阻挡碰撞器只是个组件,想运用它必须放在Gameobject中实现,因为这些都是体阻挡,如果想要面阻挡,需把该阻挡对应的Gameobject中tranform的S坐标其中一个值改成0就行了。设置场景的各个方向阻挡,需要特别注意的是,给主

本文来源:https://www.bwwdw.com/article/vu6p.html

Top