基于Unity3D的第一人称射击游戏技术实现毕业设计.docx

上传人:b****8 文档编号:11465357 上传时间:2023-03-01 格式:DOCX 页数:23 大小:3.46MB
下载 相关 举报
基于Unity3D的第一人称射击游戏技术实现毕业设计.docx_第1页
第1页 / 共23页
基于Unity3D的第一人称射击游戏技术实现毕业设计.docx_第2页
第2页 / 共23页
基于Unity3D的第一人称射击游戏技术实现毕业设计.docx_第3页
第3页 / 共23页
基于Unity3D的第一人称射击游戏技术实现毕业设计.docx_第4页
第4页 / 共23页
基于Unity3D的第一人称射击游戏技术实现毕业设计.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

基于Unity3D的第一人称射击游戏技术实现毕业设计.docx

《基于Unity3D的第一人称射击游戏技术实现毕业设计.docx》由会员分享,可在线阅读,更多相关《基于Unity3D的第一人称射击游戏技术实现毕业设计.docx(23页珍藏版)》请在冰豆网上搜索。

基于Unity3D的第一人称射击游戏技术实现毕业设计.docx

基于Unity3D的第一人称射击游戏技术实现毕业设计

1.引言

1.1开发背景

随着计算机的发展,各种电子游戏层出不穷,不断冲击着人们的视觉。

如今社会,电子游戏已经成为青年人们消遣,释放压力的一种方式。

其中CS,CF等第一人称射击类成为众多游戏迷的选择,这种3D游戏的真实感和还原度不仅能在视觉和听觉上有独特的创新,还可以提供团队作战,多人联网游戏等功能,使玩家有各种不同的新体验。

现如今,3D射击类游戏通常以第一人称视觉为主的游戏形式出现,这样的形式,不但可以让玩家进入了惊险刺激的游戏里面,又满足了玩家在生活中体验不到的乐趣。

所以,这种特点的游戏是十分具有发展前景的。

Unity3D是这个毕业设计的开发工具。

Unity3D是一个以易用和实用为主打,可跨多平台的游戏开发工具。

作为一个完全由专业集成的开发软件,Unity3D还包含了价值数百万美元的功能强大的游戏引擎。

Unity3D是一个多平台的游戏开发工具,因此,利用Unity3D并且综合多重开发工具例如:

PhotoshopCS3,C#等编程语言进行的游戏开发,具有非常高的可行性。

第一人称射击游戏类具有庞大的客户基础,市场前景非常可观。

[1]

1.2研究目的与意义

本次毕业设计的题目为基于Unity3D的第一人称射击游戏技术实现,目的在于成功的设计出一款可以运行在各种客户端的设计游戏,在项目完成的时候,玩家可以通过操作对游戏里的主角进行活动,以达到玩家体验虚拟游戏的目的。

在这个游戏中,游戏的参与者可以在用户端上面通过向左或向右滑动来改变主角的方向,同时我们还可以通过怪物对主角的跟踪从而对主角进行碰撞检测,使我们的主角生命值降低,从而改变游戏的状态。

通过此射击游戏的开发设计,使我对大型三维游戏的制作有了更深一层的了解,明白了游戏的一般的制作过程,发布过程,是我学习上的一个全新的体验,具有提高实践开发能力的意义。

2开发环境和技术

2.1开发环境

2.1.1Unity3D

图2.1Unity3D标志

Untiy3D是本次毕业设计最主要的软件。

这个软件以使用,易用和跨平台为主,Unity还具有一个性能非常领先的游戏引擎,价值不菲,是一个完全集成的专业应用。

正由于它强大的专业游戏开发引擎能大大节省开发的时间,所以Unity3D是市面上一个高效率的多平台的游戏开发工具。

[2]

2.1.2C#语言

图2.2C#

C#是本次游戏的主要脚本语言,C#是一个面向对象的计算机语言,同时它也是拥有相对较高安全系数的客户端脚本语言。

C#也通常用于web客户端的开发,网页中的动态功能就可以用C#去编写。

游戏中的脚本语言也可以用到C#,因为C#的结构相对比较简单,所以非常适用于游戏开发当中去。

以本次借鉴的游戏CS反恐精英为例子,这款游戏就是运用C#去进行脚本的编写,可见C#在游戏开发中的热门程度。

2.1.3Maya2013

图2.3Maya制作效果参考图

Maya2013是一款由美国出品的三维动画软件,在世界的应用非常广泛,应用对象是十分专业的制作,例如影视广告,角色动画,游戏设计,电影特技等。

Maya功能十分完善,是电影级别的高端制作软件而且工作灵活,易学易用,制作效率极高,渲染真实感极强。

[3]

2.2运行环境

运行游戏所需要的硬件和软件推荐配置见表2-1:

表2-1运行环境和配置要求

名称

软件/硬件

版本或配置的要求

Windows操作系统

软件

XP或以上

DirectX驱动

软件

3.0或以上

PC个人电脑

硬件

个人电脑

显卡

硬件

4G以上

续表2-1运行环境和配置要求

名称

软件/硬件

版本或配置的要求

内存

硬件

2G以上

2.3开发步骤

要开发出一款射击类游戏,首先要了解它的开发工具和脚本语言。

在校期间,我通过学校的课程学习和在图书馆中查阅与开发项目相关的资料,渐渐的对游戏引擎有了一定的了解,选择了自己相对熟悉的C#作为本次开发的脚本语言。

然后深入学习在开发中的要使用C#包,通过自己查阅C#相关资料,在网上搜索的资源和老师的指导,达到能开发游戏的水平。

整个毕业设计过程见表2-2:

表2-2项目开发计划和步骤

步骤

详细内容

1

学习使用Unity3D平台,在书本和网上对Unity进行了解。

认真去探究Unity3D每个功能模块的作用和操作方法。

通过课堂的学习和老师的细心指导,尽快熟悉了解每一个模块的基本操作。

2

做出游戏的主要场景,设计游戏的主要架构,明确游戏中角色与角色,角色与场景之间的交互过程;在网络上或者课件上查找场景角色相关的资源,方便开发。

3

将找到的资源导入系统,设置场景中的元素,比如障碍物、主角、武器、敌人、出生地点等。

具体制定游戏逻辑关系,对游戏里的角色交互进行初步规划。

4

将每个角色或者组件的脚本进行编辑,调试每个组件之间的功能与交互性,编写出游戏的开始,过程和结束时的状态。

这个过程是整个开发中的核心内容。

5

测试游戏,从开始到结束把游戏玩几遍,证实游戏的可玩性,并对每一处可能存在的错误漏洞进行排除

续表2-2项目开发计划和步骤

步骤

详细内容

6

最后,查阅相关资料,编写毕业论文,总结毕业设计过程中存在的错误和可以改进的地方,准备答辩演讲稿。

3Unity3D

3.1Unity3D发展

图3.1Unity标志

上面已经提过很多次,不过想在这里详细介绍一下Unity3D,它是由丹麦Unity公司开发的一个游戏开发工具,具有跨平台,多功能,易使用等等的特性。

正由于它强大的整合编辑和跨平台发布能力,使它成为市面上最受开发者青睐的开发工具之一。

Unity3D经过多年的发展,目前的已发行的最高发版本为5.0版,这个版本代表了一个质的飞跃——内置的光照贴图、遮挡剔除和调试器。

重新革新的编辑器,可以获得大大提高开发的效率。

[4]

3.2Unity3D的特点

Unity3D是利用交互的图型化开发环境为首要方式的游戏开发工具,类似于Blendergameengine,Virtools或TorqueGameBuilder等等开发软件,它具有综合编辑、支持多格式、一键部署、混合视频音频流、支持多脚本、重写渲染引擎、Unity资源服务器等特点,这就是Unity3D与其他游戏编辑软件的不同之处。

因为它的编辑器可以运行在微软和苹果电脑系统中,所以开发的程序可发布游戏至windows,苹果和安卓这些平台。

它也可以利用它独有的插件去各种发布网页游戏,手机游戏,支持多种系统的网页浏览。

[5]因为其适应性极强,兼容性极高,所以是各种不同种类的游戏开发者的首选。

最新版本的Unity3D特点具体见表3-1:

表3-1Unity3D特点

主要特点

具体内容

1)综合的编辑

Unity拥有一个整合性的编辑器,它可以同意地对每一个界面进行编辑,因此节省了逐个打开每个界面的时间,提高了开发的效率。

2)支持多种格式

开发软件支持多种主要文件格式,而且能和大多数相关应用程序协同工作。

3)一键部署

Unity可以让开发者的项目在多平台发布。

在File选项中的BuildSetting功能中,可供选择的方案十分多样齐全,开发者可以选择将自己的程序发布到自己选择平台上,典型的平台有Windows平台,或者安卓,iOS平台等。

[6]

4)混合音频流和视频流

实时同步3D图形,混合音频流、视频流,以达到使本游戏更加逼真和传神。

5)支持多脚本

Unity3D支持JavaScript,C#,Boo这三种脚本语言。

支持多脚本的特点为更多不同语言的编程人员提供了开发的可能,也使程序更具兼容性。

[7]

6)重写渲染引擎

Unity3D最新版本中改写了全部的渲染终端,这样使得新版变的比以前的版本更加的灵活。

渲染的时间也比以前缩短一倍。

7)Unity资源服务器

由于Unity3D的资源服务器是一个版本控制的产品。

对于场景的切换更加快捷,极大的提高了开发效率。

 

3.3Unity3D包的使用

在Unity3D中自带着许多写好的包,人们都可以直接将这些写好的包进行调用,这样就非常的方便了我们的游戏开发和制作,而且,我们也可以在网上找到一些别人已经写好的包导入到自己的开发的游戏中去,然后根据自己的游戏设计的需求,对那些下载了的包进行一个小小的改动,使它更好的适用于我们的游戏当中,从而使游戏的可玩性更高。

Unity3D中包的使用极大的提高了开发的效率,使我们的开发更加方便,而且也节约了我们不少的开发时间,缩短了开发的周期。

[8]

3.4Unity3D发布平台

Unity3D可以把开发的游戏发布在电脑,安卓,苹果手机系统和网页游戏上,这种多平台开发的功能可以方便游戏能用于各种不同的终端当中。

[9]不但这样,Unity还可以将游戏发布出很多种文件格式,例如.exe文件和.apk文件,还有.swf文件等等。

[10]

图3.2发布平台

4游戏设计

4.1开发目标

本次游戏开发的目标是设计出一个具有基本打怪功能的第一人称射击小游戏。

该游戏具有打击怪物,计分和统计历史最高纪录的功能,怪物可以追踪主角,打倒一个怪物可以获得100计分。

弹药100发,当弹药耗尽时候更换弹药。

当主角生命值为0时,游戏结束。

4.2界面设计

4.2.1游戏设计

准备一个游戏场所,场景中的美术设计可以再网上下载或者在教学课件中找到,然后,再在游戏中的墙壁设置碰撞功能。

图4.1游戏场景

载入素材,选择三个场景模型,在菜单栏中的【MeshCollider】设置碰撞体组件

图4.2选择场景模型

图4.3设置碰撞组件

4.3主角设计

4.3.1设置主角组件

在菜单栏中创建一个主角的组件,然后设置其参数,取消选择重力模拟,选着不熟物理影响,这样主角就能用脚本语言进行控制了。

图4.4设置主角组件

设置主角的生命值,移动和镜头的代码,见图4.5和图4.6

图4.5主角基础数据代码

监视键盘,把w,s,a,d设置为主角移动的上下左右键

图4.6控制主角行动代码

将代码放进Player.cs,指定给角色组件,按W,S,A,D,移动鼠标,就可以对角色进行上下左右和镜头的移动。

4.3.2设置武器

要将武器绑定在主角身上,随着主角移动。

把素材导入场景中,设置武器的位置。

图4.7武器组件位置设置

4.4敌人设计

射击游戏中必须有敌人或者打击目标。

本游戏中,敌人会对游戏中的主角进行寻路,并追踪主角进行伤害,并且,敌人相应的行为都会有相应的动画,在敌人不同状态的时候播放出来,增加游戏的生动性。

图4.8敌人组件设置

4.4.1设置敌人动画

设置好了敌人的大小和位置,接下来为敌人的动作行为设置动画,这个设置是游戏想的更加生动逼真,让玩家觉得更加有真实感。

例如在游戏中,对敌人的生成,跟踪,攻击,死亡时,导入相应的动画,再在脚本中对动画的出发条件进行编写,当条件满足,敌人相应的动画就会播放。

通过Animator窗口,把敌人的行走,死亡,攻击,静止等一系列动作关联起来,并在脚本中把它们控制起来。

图4.9Animator窗口

4.4.2设置敌人行为

因为敌人的动画与控制它的代码有关,用Enemy.cs修改敌人的脚本,在不同动画状态的敌人行为也会有改变,代码如下:

定义两个变量m_movSpeed和m_rotSpeed,一个指定敌人的移动速度,一个制动敌人的转弯速度

图4.10敌人寻路,转身和移动

判断敌人生命值,当生命值为0时返回,当生命值不为0时,追踪主角

图4.11敌人在追踪主角

当敌人与主角的距离小于1.5f,敌人进入攻击状态,调用敌人攻击动画

图4.12敌人进入攻击行为时的代码

当敌人收到打击,判定生命值为0时,,销毁自身,调用销毁动画。

图4.13敌人死亡时的代码

以上就是敌人行为的代码。

4.5设置交互

设置好了场景,主角,敌人这三个主要元素后,虽然敌人可以攻击主角,但是主角还不可以攻击敌人,所以接下来就是使他们进行交互,让主角可以攻击敌人。

打开Player.cs,添加代码如下列图:

为游戏的界面添加主角的数据显示,包括生命值,弹药数,实时分数,历史记录。

图4.14添加UI与生命值的联系

图4.15添加射击时的属性

当射击到敌人,敌人会产生伤害,敌人收到伤害后会死亡。

设计的代码如下:

图4.16

以上就是主角与敌人的交互代码。

4.6设置主角与敌人的死亡

最后,设置主角和敌人生命值为0的状态,当敌人死亡时自身销毁,加100分;当主角生命值为0时结束游戏。

4.6.1敌人死亡

,打开Enemy.cs文件,对敌人死亡的状态添加代码,当敌人生命值为0,进入死亡状态,见图4.17和4.18:

判定敌人的生命值,为零就执行下一步。

图4.17生命值为0时执行死亡状态

图4.18死亡后销毁自身

4.6.2主角死亡

打开Player.cs文件,将对敌人死亡的状态添加代码,当主角生命值为0,弹出对话框,显示游戏结束,见图4.19

图4.19主角死亡,游戏结束

4.7发布游戏

点击file中的BuildSettings,选择PC平台,点击Build即可生成,见图4.20。

图4.20发布于PC平台

发布成功后,双击生成的.exe游戏即可运行游戏,见图4.21

图4.21发布出来的游戏程序

5游戏测试

点击play进入游戏画面.。

图5.1进入开始游戏界面

移动主角位置和摄像头,发现敌人,通过W,S,A,D进行移动,墙壁与主角碰撞,主角不能穿过墙壁。

通过移动和攻击躲开敌人的跟踪和攻击。

图5.1移动躲避敌人的追踪

用鼠标左击,消灭的人,同时获得100分,历史分数同时也会更新记录

图5.2射击敌人

打倒敌人

图5.3打倒敌人

打倒一个敌人,获得100分

图5.4刚才打到敌人加100分

被敌人攻击,生命值为0时,游戏结束,可以选择“再来一局”。

图5.5主角生命值为0,游戏结束

以上就是本次游戏的测试。

本次测试,确定了本次游戏的开发能实现当初草拟的基本功能,把游戏中可能存在的漏洞和错误一一排除,使游戏能在Windows系统中运行不出错,也为将来对这个游戏的更正和继续开发提供了可能。

 

6结论

以上就是本次毕业论文的主要成果,开发出来的游戏已经能完成市面上第一人称射击游戏(例如反恐精英,穿越火线,求生之路等)的基本功能:

主角能对敌人进行打击,界面拥有记录分数的功能;而在整个游戏开发的过程中,最难的地方解决的地方就是新敌人的生成,还有敌人对主角的跟踪,新生敌人设计的难点在于生成的数量和时间间隔,敌人生成得太快或太慢,太多或太少都会直接影响游戏体验;对于敌人跟踪过程的实现,需要对C#的深入了解,由于在开发的初期C#运用的不熟悉,所以游戏开发被卡住了一段时间。

本次游戏具备了基本的设计游戏功能,也可以在多个平台发布,所以有继续开发的前景。

游戏中的音效和运动情况已经能做到顺畅连贯,而且北邮不错的音效。

我希望以后能为这个游戏添加联网功能,如此一来游戏就能实现多人游戏,多个玩家一起协作打怪通关,为玩家添加更多的变数和乐趣。

本次设计也有不少缺陷,例如场景的单一,没有关卡;主角没有更换武器的选择;而且敌人在攻击敌人的状态动画也不够生动,很难将玩家带入情景中去等等。

这些缺陷有由于时间原因,也有开发的知识有待提高的原因。

总之,要改善这个游戏,先要提高自身编程素养,也要在游戏开发初期进行更有效和系统的规划。

人要进步离不开老师的指导。

本次游戏开发过程中遇到了不少的困难,幸运的是知道老师和身边的同学的耐心指导和共同探讨,游戏才能在遇到瓶颈能迎刃而解,为此我非常感激每一个在开发中帮助过我的人,我今后会不断努力,提高自己,在以后去帮助更多需要帮助的人。

参考文献:

[1]张俊,廖金巧.基于Unity3D的手机版FPS射击游戏设计与开发[J].赤峰学院学报(自然版),2016,32(15):

38-39.

[2]ZhuHJ.VirtualRoamingSystemBasedonUnity3D[J].ComputerSystems&Applications,2012.

[3]卢鸫翔.跨平台游戏引擎Unity3D初体验[J].程序员,2012(4):

24-25.

[4]肖霄.基于Unity3D游戏引擎的休闲类手游设计与实现[D].华中科技大学,2014.

[5]BourkeP.iDome:

ImmersivegamingwiththeUnity3Dgameengine[C]//InternationalConferencesonComputerGames,MultimediaandAlliedTechnology.2009.

[6]王海啸.基于Unity3D游戏引擎的三维动画虚拟摄像机的设计与实现[M].2014.

[7]吴志达.一个基于Unity3d游戏引擎的体感游戏研究与实现[D].中山大学,2012.

[8]邱竟峰,王洪源,陈慕羿.Unity3D引擎实现游戏人物的基本操控[J].中国新技术新产品,2016(19):

24-25.

[9]郭睿静,张帅.基于Unity3D游戏动作的控制和设计[J].兰州文理学院学报(自然科学版),2015,29

(1):

43-47.

[10]赵海峰.基于Unity3D的游戏开发与设计[D].山东科技大学,2014.

 

致谢

从毕业设计的选题、任务书的书写、毕业设计阶段到毕业论文的完成,这几个月期间,我对游戏开发的整个流程有了更深刻的认识,对游戏开发的基本理论、专业知识和基本技术进行了梳理,并有了更深入的了解,使我在学校中所学到的知识得到了升华,真正达到了学以致用。

在做毕业设计期间我遇到了很多困难,游戏出现不少错误,非常感谢我的指导老师和小组同学对我的耐心指导,有了他们的协助和提点,使我更有效率的完成了本次毕业设计。

这个程序虽然具有了一些基本的功能,但还存在不少缺陷,我今后会继续努力,通过不断的学习,提升自己的实力,争取开发出更加好的游戏程序。

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

当前位置:首页 > 外语学习 > 其它语言学习

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

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