




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京工程学院毕业设计说明书(论文)全套设计加扣3012250582作者:学号:院系:专业:计算机科学与技术题目:基于Unity的射击类游戏开发指导者:评阅者:2013年6月毕毕业业设设计计说说明明书书(论论文文)中中文文摘摘要要随着虚拟现实和游戏事业的快速发展,unity3D作为一款能够快速开发和应用的3D虚拟现实开发软在市场上正在逐步升温。文本的主要内容是介绍用unity3D软件做一款简单的射击类游戏。本文从前期的相关技术介绍、开发软件系统以及环境的介绍、项目的功能需求分析和详细设计、系统的运行、成品的打包等方面介绍了系统的开发过程。本设计主要为坦克类的射击游戏,设计平台为unity3D3.5.5版本,系统中还用到了3dsMAX软件,photoshop软件中的一些相关技术,设计语言使用的是C#语言,系统主要实现一些模型移动、开火等基本的相关操作并在此基础上能够充分发挥开发者的能力进行更多复杂的逻辑设计。关键字3D技术unity3D射击类游戏毕毕业业设设计计说说明明书书(论论文文)外外文文摘摘要要TTiittlleeTheshuttinggameimplementbasedonUnity3DAAbbssttrraaccttWiththerapiddevelopmentofvirtualrealityandgamecareerunity3Dasarapiddevelopmentandapplicationofthe3Dvirtualrealitysoftwareonthemarketisgraduallywarmingup.Maincontentofthetextistointroducetheusingunity3Dsoftwaretodesignasimpleshootinggame.Thispaperintroducesthesystemdevelopmentprocesssuchastherelatedtechnologythedevelopmentofsoftwaresystemtheprojectfunctionanalysisanddesignsystemimplementationsystemtesting.Thedesignofthemainistankclassshootinggame.Thdesignplatistheunity3Dversionof3.5.5thesystemalsouses3dsMAXsoftware.somerelatedtechnologiesusesPhotoshopsoftwaretofinishanddesignlanguageisusedC#language.systemismainlytoachievesomemodelofmoveingfireandotherbasicrelatedoperations.onthisbasisthedesigneralsocangivemoreabilitiesorecomplexlogicdesign.KKeeyywwoorrddss3DTechnologyUnity3Dtheshootinggame-i-目录前言.1第一章绪论.21.1引言.21.2研究内容.21.3本章小结.3第二章技术介绍.42.1UNITY3D软件概述.42.2C#介绍.42.3VISUALSTUDIO2010.42.4PHOTOSHOP简介.52.53DSMAX简介.52.6系统开发运行环境.52.8本章小结.5第三章系统的需求分析和设计.63.1需求分析.63.2系统的设计.63.3本章小结.7第四章游戏系统的实现.84.1UNITY3D软件的界面.84.2游戏开始界面制作.94.3游戏的制作.124.4游戏的打包和导出.334.5本章小结.34第五章游戏的运行和改进.365.1游戏的开始运行.365.2游戏系统的改进.385.3本章小结.38-ii-结论.39参考文献.40致谢.41附录:英文技术资料翻译.42南京工程学院毕业设计说明书(论文)1前前言言随着社会科技水平和经济水平的迅速发展,虚拟现实技术逐步的迈入人们生活,其涉及的领域十分广泛,在商业、游戏等有着惊人的发展,正因为如此Unity3D作为一款虚拟3D开发的软件正在逐步升温,他以其跨平台的优势,良好的界面环境,强大的功能设计渐渐的被广大虚拟现实的设计者们所使用。本文详细介绍了采用unity3D软件,设计一个射击类游戏,模仿的是现实坦克的射击,并在此基础上发挥制作者的创新力和设计能力。Unity3D开发软件是一款多平台的综合性的开发工具,Unity相似于DirectorBlendergameengineVirtools等使用交互的图型化的集成开发环境为首要处理方式的软件,其编辑器能够运行在时下主流的Windows和MacOSX下,制作的成品可发布至Windows、Mac、Wii、iPhone以及安卓平台。该软件支持的语言包括C#,JS等高级脚本语言。其功能强大,API丰富,因此开发者们不必要去自己写相关的方法,这样就给与开发者们更多创新的时间与空间。本游戏界面简单友好,游戏内容丰富,功能包括坦克的开炮,移动,游戏中还包括敌人,道具的获得和技能的使用等。南京工程学院毕业设计说明书(论文)2第第一一章章绪绪论论11.11引引言言无论是3D化的谷歌地图,还是现在脍炙人口3D游戏,甚至是集娱乐和运动于一体的室内体感游戏,这一切都是虚拟现实技术的应用。如今的社会,不仅仅是游戏,3D技术已经被广泛的开发并且用作商业应用,比如模拟车展,火箭升空,3D旅行等,因此,在3D虚拟如此盛行的今天,用Unity3D做一款3D游戏也算是赶上时代的脉搏了。Unity3D其开发的综合性平台和其丰富的脚本语言,开发界面友好,功能强大等有利因素,被我选择作为制作一款射击类游戏的开发工具。通过对3D游戏的设计,来充分了解虚拟现实在社会中的应用以及如何将该技术广泛的应用在各大领域。该软件的各项功能,让我发现了很多游戏以及3D技术使用的影子。比如我们了解的第三人称与第一人称之间的来回切换,在U3D中完成这一操作仅仅只要对摄像机使用脚本语言来回切换,因为U3D丰富并强大的API使得原本在虚拟世界中看起来复杂的行为变得简单易得,这就是U3D为什么如此火的原因。在本篇论文中,第一章主要介绍了虚拟现实的使用领域、发展和研究内容,第二章主要介绍了完成该游戏所用的到软件以及涉及到的技术知识,第三章主要介绍了系统的需求分析、系统的整体设计和详细设计,第四章主要介绍了游戏完成的整个过程、游戏的创意性设计、游戏的打包和导出。第五章主要介绍游戏运行结果。11.22研研究究内内容容运用Unity3D软件,结合photoshop、3Dmax等基础的使用方法,完成一个简单的设计类游戏,该游戏涉及到得是坦克的现实模拟,能够使模型完成开火等一系列的运动方式,并在此基础上做一些创新性的实施。南京工程学院毕业设计说明书(论文)311.33本本章章小小结结本章主要介绍了3D虚拟技术的应用领域和现状,Unity3D开发3D游戏的优势以及本文主要的研究内容。南京工程学院毕业设计说明书(论文)4第第二二章章技技术术介介绍绍22.11UUnniittyy33DD软软件件概概述述Unity3D(以下简称U3D)是一款3D跨平台次世代游戏引擎。1)提供了非常完美的跨平台系统。平台之间的差别常常会影响到产品的开发速度和进度,因此大部分开发者们要在这上面花费大量的时间,而unity则能在近10种主流平台之间完美移植。2)提供了多种脚本语言编译的常用环境,并且可以根据需求将默认的编译环境做出调整。Unity3D支持C#、Javascript、Boo三种脚本语言。3)提供了一个交互良好的操作界面,能够完美的在windows和MacOS下部署。该软件自带的五个工程视图框架能够让你很好的观察你制作游戏的进程。Unity3D丰富的API能够帮你完成各种想要完成的需求。它的界面系统能够更好的帮助设计者分类游戏中的对象。其中包括project视图,该视图主要存放游戏中的资源文件,hierarchy视图主要放置游戏场景中具体的游戏对象,inspector视图主要来描述游戏资源的信息,scene视图主要存放游戏中模型资源,game视图是用来观察已经完成的游戏运行成果。22.22CC#介介绍绍MicrosoftVisualC#(读作Csharp)是一种常用的编程语言。C#语法很简单、功能非常强大、类型相对安全,并且是面向对象的。C#凭借着它创新的心法,在保证C语言样式的表现方式的同时,完全实现了应用程序的相对快速的开发,该语言作为U3D中的脚本语言能够更好的符合他面向对象的特征。22.33VViissuuaallssttuuddiioo22001100Visualstudio2010(以下简称VS10)是微软公司自主推出的开发环境。南京工程学院毕业设计说明书(论文)5其中它支持了最新的集成开发环境。VS10也带来了NETFramework4.0、MicrosoftVisualStudio2010CTP并且支持开发者面向win7的应用程序开发。除了MicrosoftSQLSever,它还支持IBM,Oracle数据库等。22.44PPhhoottoosshhoopp简简介介AdobePhotoshop,简称“PS”,是由AdobeSystems开发并发行的一款图像处理软件。Photoshop主要用来处理以像素所构成的数字图像。使用其丰富的修改编辑工具与绘图工具,可以更高效良好的进行图片编辑工作。22.5533ddssMMaaxx简简介介3DStudioMax,简称为3dsMax或MAX,是discreet公司开发的一款基于PC操作系统的三维动画渲染和三维对象制作软件。其前身是基于DOS操作系统的3DStudio软件。在windowsNET出现之前,专业级的CG制作被SGI图形工作站所垄断。3DStudioMax+WindowsNT组合的出现瞬间就降低了CG制作的难度,软件初始时是运用于电脑游戏中制作动画,后进一步用于参与影视片中的特效制作。22.66系系统统开开发发运运行行环环境境操作系统:MicrosoftWindowsXP开发环境:Unity3D3.5.5开发工具:MicrosoftVisualStudio2010Photoshop3dsmax9.0开发语言:C#语言22.88本本章章小小结结本章主要介绍了制作射击类游戏所用到得开发工具、开发语言和所用到得相关技术以及系统开发运行的环境。南京工程学院毕业设计说明书(论文)6第第三三章章系系统统的的需需求求分分析析和和设设计计33.11需需求求分分析析游戏需要一个开始界面用来开始游戏、了解游戏的玩法、以及退出游戏,初始界面至少要有这三个选项。场景的设计以及各种触发事件,并且在此基础上有所创新。在游戏的GUI上面有主角的血条,装填炮弹,还有一些创新性的技能设计,让游戏更加丰富多彩。游戏中还应该存在敌人,敌人会主动瞄准主角并攻击。33.22系系统统的的设设计计33.22.11系系统统的的开开始始界界面面设设计计系统包括场景1和场景2。场景1中所要设计的就是游戏的开始界面。界面中包含了3个按钮,分别完成各项功能。按钮1)开始游戏:用来进入场景2,即进入游戏。用户只要通过鼠标按下该按钮,就可以载入所要进行的游戏。按钮2)游戏帮助:用来进入帮助界面。帮助界面主要用来告知玩家如何进行游戏等等注意事项。为一些刚解除该游戏的玩家提供帮助。按钮3)退出游戏:主要用来退出游戏。33.22.22系系统统的的场场景景设设计计系统中的场景2就是我们所要进行游戏的场景。场景中包含的对象有:1)地形:对象都放在这上面。还包括一些植物和水池。2)主角对象:这里的主角对象是一辆坦克,包括了坦克的移动、开火、还有与其相关联的GUI。3)敌方对象:这里的对象包括的敌方的坦克,炮台等,他们都有自己的AI。4)特殊道具:有些特殊道具可以被摧毁。有些特殊道具可以被拾取并触发南京工程学院毕业设计说明书(论文)7有意思的事件。33.33本本章章小小结结本章对该游戏进行了一些需求和系统的分析,整体列出来了该游戏中所要包含的一切对象,下一章就是要具体设计这些对象并给予逻辑命令。南京工程学院毕业设计说明书(论文)8第第四四章章游游戏戏系系统统的的实实现现44.11UUnniittyy33DD软软件件的的界界面面图4-1Unity3D界面Unity3D的交互界面非常友好,并且能够变换多种视图分布方式直到你找到最合适自己的分布方式。工具栏中的window-Layouts里面有很多分布选项。南京工程学院毕业设计说明书(论文)944.22游游戏戏开开始始界界面面制制作作图4-2创建工程在制作开始界面之前,我们应该创建一个工程,在工具栏中选择File-Newproject菜单项,之后则会弹出ProjectWizard,选择CreatenewProject,在ProjectDirectory中点击Set按钮设置游戏工程保存路径与项目名称,然后再点击Importthefollowingpackages中引入系统提供的标准资源包。为了更好的将对象分类,我们首先应该在project视图中创建几个文件夹名字分别为界面,在界面字文件夹中再创建贴图文件夹,这些文件夹用来分类放置你所需要的东西。我们在网上搜索了几张开始界面以及游戏结束的背景图,放在贴图文件夹中以便制作背景时使用。在制作背景之前,我们首先应该将U3D默认的脚本编辑器设置为VS10,在Edit中的preference中可以设置。我们在project中创建一个C#脚本。首先我们使用GUI.DrawTexture(newRect(00Screen.widthScreen.height)textureBG)方法来给整个屏幕附上textureBG贴图,rect南京工程学院毕业设计说明书(论文)10方法是用来创建一个矩形框,它的参数表示Rect(距离左边屏幕的距离,距离上边屏幕的距离,举行的宽,矩形的高),这是制作界面背景的一种方法。然后我们使用状态机的方法来给界面设计他的执行按钮所要完成的需求。在我们创建一个C#脚本的时候,已经默认的继承MonoBehaviour接口,因此在VS10中会自动生成两个方法,分别为voidstart()函数,该函数用来给游戏刚开始时给对象赋予的操作,只在项目开始的时候执行一次,voidupdate()函数式在每一帧都执行这里面的代码。我们在游戏的脚本代码中给摄像机赋予了4种状态机,分别是当前画面状态,开始后的状态,按下帮助后的状态,按下退出后的状态,分别给这些状态写了方法,即mainmenu(),helpmenu(),quitmenu()。具体脚本代码和结果如图4-3所示:usingUnityEngineusingSystem.Collectionspublicclassjiemian:MonoBehaviourprivateconstintgame_main=0privateconstintgame_start=1privateconstintgame_quit=2privateconstintgame_help=3publicGUISkinmySkinpublicTexturetextureBG背景贴图接口publicTexturetexturetuichu退出贴图publicTexturetexturebangzhuprivateintgamenow当前游戏状态voidStart()gamenow=game_mainvoidOnGUI()switch(gamenow)casegame_main:mainmenu()breakcasegame_start:Application.LoadLevel(场景1)breakcasegame_help:helpmenu()breakcasegame_quit:南京工程学院毕业设计说明书(论文)11quitmenu()breakvoidmainmenu()GUI.skin=mySkinGUI.DrawTexture(newRect(00Screen.widthScreen.height)textureBG)if(GUI.Button(newRect(02015050)开始游戏)gamenow=game_startif(GUI.Button(newRect(050012050)结束游戏)gamenow=game_quitif(GUI.Button(newRect(025015050)帮助)gamenow=game_helpvoidhelpmenu()GUI.skin=mySkinGUI.DrawTexture(newRect(00Screen.widthScreen.height)texturebangzhu)if(GUI.Button(newRect(050015050)返回)gamenow=game_mainvoidquitmenu()GUI.skin=mySkinGUI.DrawTexture(newRect(00Screen.widthScreen.height)texturetuichu)if(GUI.Button(newRect(020015050)返回)gamenow=game_mainUsethisforinitializationUpdateiscalledonceperframevoidUpdate()南京工程学院毕业设计说明书(论文)12脚本代码完成后,将这段脚本拖给界面中的主摄像机,如图4-3所示:图4-3赋予给摄像机脚本然后单击主摄像机,会发现右下角多出了一个脚本控制,然后将刚在在脚本中创建的图片接口用适当的图片拖入,这样就可以完成相应的界面设计了。具体界面成果如图4-4所示:图4-4制作完成的界面南京工程学院毕业设计说明书(论文)1344.33游游戏戏的的制制作作游戏的界面已经基本完成,Unity3D中不仅有自带的按钮格式,更可以自己定义按钮的风格。在界面中我就自己定义了按钮的风格,使鼠标放在按钮上,按钮会产生一个碎裂的效果。游戏的制作将分为三块,第一块就是场景的制作,使对象在具体的一个场景环境中活动,第二块就是对象的制作,包含场景中的静态对象和动态对象,第三块就是创新设计。44.33.11场场景景的的制制作作Unity中自带的平面系统能很好的为我们创建我们想到要的地形场景。在工具栏中选择Terrain-CreateTerrain便可以创建一个平面。图4-5创建一个自带平面在Terrain中的SET.选项中可以修改平面的大小,我们在最右侧视图中可以发现该平面的属性,在Terrain(sprict)下的几个按钮可以用来修饰平面,前三个按钮可以将平台的地势加高,加平缓,第四个按钮是用来给平面附上地形贴图,第五个按钮是用来创造树,第六个按钮是用来创造花草植物,按下EditDetails便可以为这些物体选择所需的贴图。在刚刚创建的平面中我们发现整个场景都十分灰暗,这是就要在Create南京工程学院毕业设计说明书(论文)14Object选项中的CreateOther中选择Directionlight来放在场景中,你会发现场景变得更加亮了。为了让整个场景更加唯美,U3D中自带了天空盒系统(SKYBOX),在工具栏中选择Edit-RenderSteting菜单,打开渲染设置的界面,在SkyboxMaterial选项中设置天空盒的材质,即将天空盒包中的天空盒材质拖入其中便可。这样美轮美奂的场景就基本设置完成了。在创建工程时我们还导入了水体的包裹,这样我们也可以在场景中还可以加入一些水体效果。图4-6完成后的地形U3D中自带的地形编辑器功能十分强大,可以打造任何你想要的场景,沙漠、雪山任何你想到的场景风格,他基本都能模拟出来。上图就是我个人制作的地形。44.33.22游游戏戏对对象象的的制制作作1主主角角对对象象1)主角模型南京工程学院毕业设计说明书(论文)15首先我们要将玩家所要控制的对象设计出来,即主角对象,这里使用的是一款坦克模型。在网上找到相应的坦克模型的.max文件,而Unity3D(一下简称U3D)所支持的是.FBX模型,这里我将.max模型文件导入到3DSmax中,再将其的格式导出为.FBX格式,这样就可以将该模型拖入到U3D中了。图4-7主角的设计2)移动方式在场景中调整好坦克的大小之后,就必须要给坦克主角添加行动脚本了。现实中的坦克只能往前移动,并不能左右平移,但可以原地旋转身体。U3D中使用方法trans.Translate()来移动身体,此方法的唯一参数为平移模型的方向。使用方法trans.Rotate()来旋转身体,此方法的参数为旋转的速度和旋转方向。具体代码为:usingUnityEngineusingSystem.Collectionspublicclassshentiyidong:MonoBehaviourprivateintspeed=10privateGameObjectobjprivateintspeedrotate=20UsethisforinitializationvoidStart()Updateiscalledonceperframe南京工程学院毕业设计说明书(论文)16voidUpdate()if(fashe.baozoumoshi=0)if(.GetKey(KeyCode.W)trans.Translate(Vector3.forwardTime.deltaTimespeed)if(.GetKey(KeyCode.S)trans.Translate(Vector3.forwardTime.deltaTime-speed)if(.GetKey(KeyCode.A)trans.Rotate(newVector3(0-20)if(.GetKey(KeyCode.D)trans.Rotate(newVector3(020)将这一段脚本代码拖入到整个坦克中,就可以在场景中实现坦克的前后移动和身体的旋转,其中Vector3这是一个方向容器,其中参数表示(X轴,Y轴,Z轴)。3)炮头旋转之后我们来设计坦克的炮头旋转方式,方法任然为Rotate()方法具体代码为:usingUnityEngineusingSystem.CollectionspublicclassNxuanzhuanpaotou:MonoBehaviourprivateintspeed=100UsethisforinitializationvoidStart()南京工程学院毕业设计说明书(论文)17UpdateiscalledonceperframevoidUpdate()trans.Rotate(newVector3(00.GetAxis(MouseX)Time.deltaTimespeed)将该段代码拖给坦克中的炮头,就可以旋转炮头了。4)炮弹的设计与开火实现在工具栏中选择CreateObject-CreateOther-sphere来创建一个球型物体,调整大小,并在网上找一些金属高亮的材质赋予给球体。在project视图中我们创建一个prefab预制对象,将场景中的炮弹球体拖入该预制对象中改名为bullet,然后删除场景中的炮弹对象。这样我们所要的炮弹就有了,之后便是发射炮弹的实现。创建一个空的对象,在工具栏上选择CreateObject-CreateEmpty,将该空对象拖到炮口附近,将其改名为firepoint,并将它拖入到炮头中,使其成为炮头的子对象。如图4-8所示:图4-8设计完成开炮的逻辑我们给firepoint这个空对象给与一些脚本代码来完成发射炮弹的效果。代码如下:if(.GetMouseButtonDown(0)南京工程学院毕业设计说明书(论文)18if(canshot=1)creationtime=Time.timeDebug.Log(creationtime)Rigidbodycloneclone=Instantiate(bulletfirePiont.positionfirePiont.rotation)asRigidbodyclone.velocity=trans.TransDirection(Vector3.forward250)Instantiate(paokouhuohuafirePiont.positionfirePiont.rotation)canshot=0if(Time.time(creationtime+2)canshot=1在发射炮弹的脚本代码中,我们使用了Instantiate()方法,该方法用来实例化一个克隆对象,参数为(实例化的对象,产生的位置,产生的方向),trans.TransDirection()方法用来给创建的克隆实例给一个方向力,参数为力的方向。使用了GetMouseButton(0)方法来完成左键鼠标就可以实例化一个炮弹,并且按照方向发射出去。定义了一个canshot整形用来判定炮弹是否能发射。在游戏中运行时,我们发现炮弹能够发射并且会被撞到的物体弹开,下面就是要设计炮弹的爆炸与火花。与炮弹的设计相同,在火花效果的包中找到一个fireworks效果,调整效果至爆炸的样子,然后将它放入一个预制对象之中名字改为火花。我们添加如下代码使得炮弹碰撞到地方就消失并且产生一个火花,火花的产生与消失。具体代码为:usingUnityEngineusingSystem.Collectionspublicclasspaodan:MonoBehaviourpublicTransboomvoidOnCollisionStay(Collisioncollision)南京工程学院毕业设计说明书(论文)19Instantiate(boomthis.trans.positionthis.trans.rotation)Destroy(gameObject)UsethisforinitializationvoidStart()UpdateiscalledonceperframevoidUpdate()将这段代码拖给炮弹,目的是让炮弹碰撞到物体就消失,并且在消失的地方实例化一个火花。这里使用了OnCollisionStay(Collsioncollision)方法,这是U3D中的一种碰撞检测。火花的消失代码为:usingUnityEngineusingSystem.Collectionspublicclasshuohuaxiaoshi:MonoBehaviourprivatefloatcreationtimeUsethisforinitializationvoidStart()voidAwake()creationtime=Time.timeUpdateiscalledonceperframevoidUpdate()if(Time.time(creationtime+0.6)Destroy(gameObject)Awake()方法是在物体创建的时候记录时间用的,在创建火花到0.6秒时删除该对象,这样看起来就像是炮弹打中的地方产生火花的效果。到此我们主角的设计基本都完成了,将主角坦克放入场景中,运行游戏的时候我们会发现主角无法停留在地形上,因为这里的坦克仅仅是一个模型,不存在碰撞效果,在工具栏中选择component-Physis-boxCollider给与坦克模型一个盒子碰撞模型,调整盒子碰撞模型的大小为坦克大小,这样坦克就可以稳稳的站立在地形上了,如图4-9所示。南京工程学院毕业设计说明书(论文)20图4-9坦克在场景中设计完成2敌敌人人对对象象与主角对象一样,从网上找来一个坦克和火炮的模型,调整大小,为了降低游戏的难度,这里的敌人对象是无法移动的,但是他们会主动寻找主角并打击主角,这里就是有关对人AI的设定了。我们任然像给与主角发射炮弹的能力来给敌人的炮头附上发射炮弹的功能,代码和主角代码如出一辙。设计敌人的关键之处就在于敌人的AI设定,以下的代码就是敌人AI的代码。usingUnityEngineusingSystem.CollectionspublicclassdapaoAI:MonoBehaviourprivateGameObjecthero主角对象privateintdiren_distance=150privateGameObjectpaotou1privateGameObjectpaotoupublicRigidbodybulletpublicTransfirepointdapaoprivatedoublecreationtimeprivateintcanshot=1publicTranspaokouhuohuaUsethisforinitializationvoidStart()hero=GameObject.Find(mytank修改)南京工程学院毕业设计说明书(论文)21paotou=GameObject.Find(paotou)UpdateiscalledonceperframevoidUpdate()if(hero=true)if(Vector3.Distance(this.trans.positionhero.trans.position)(creationtime+2)canshot=1这里使用了Vector3.Distance()方法用来检测主角是否进入敌人的攻击范围,参数为该物体的方位和相对物的方位,diren_distance就是预先设定的敌人侦查范围的大小,如果小于该侦查范围,就执行trans.LookAt()方法,朝向主角,并发射炮弹,如图4-10所示。南京工程学院毕业设计说明书(论文)22图4-10敌人向主角开火这样主角坦克和敌人的设计基本就完成了。3场场景景中中一一些些其其他他对对象象为了使场景的环境不显得单调,可以创作自己想要的一些其他东西在场景中,比如可以破坏的房屋,油桶,树木等,这些道具不仅仅可以丰富场景内容,也可以使用这些道具来配合游戏的创新性。44.33.33游游戏戏的的创创新新性性制制作作为了使游戏更具有可玩性和观赏性,在游戏中加入必要的界面设计和功能设计是必不可少的。3游游戏戏中中的的GGUUII让主角的血量、开火的间隔、技能的设定与GUI所联动,接下来就是所要涉及到得游戏创新性设计。使主角和敌人获得血量并且在界面上画出主角血量的多少。脚本代码如下:usingUnityEngineusingSystem.Collectionspublicclassxuetiaohekouxue:MonoBehaviourpublicTransmaoyan1publicTransmaoyan2publicTransmaoyan3南京工程学院毕业设计说明书(论文)23publicTransyanwuprivateintlife=100publicTexture2DtexturepublicTexture2Dtexture1publicTexture2Dtexture2publicTexture2DjinengkongpublicTexture2DjinengtietupublicTexture2DjinengfeijikongpublicTexture2DjinengfeijiprivateGameObjectNPCprivateGameObjectobjprivateGameObjectfeijiprivateGameObjectnengliangkuaistaticpublicstringstr=1.暴走UsethisforinitializationvoidOnCollisionEnter(Collisioncollision)foreach(ContactPointcontactincollision.contacts)if(contact.otherC=炮弹(Clone)life=life-5if(contact.otherC=能量块(Clone)fashe.nengliang=fashe.nengliang+1Debug.Log(fashe.nengliang)Destroy(nengliangkuai)if(contact.otherC=NPC友军坦克)fashe.canbaozoumoshi=1调用fashe函数中的暴走模式fashe.zhushoutishi=1Destroy(NPC)南京工程学院毕业设计说明书(论文)24if(contact.otherC=飞机)feijichansheng.kongxi=1Destroy(feiji)if(life40)GUI.DrawTexture(newRect(020width15)texture1)南京工程学院毕业设计说明书(论文)25elseif(life=0)GUI.DrawTexture(newRect(020width15)texture2)voidStart()feiji=GameObject.Find(飞机)obj=GameObject.Find(Camera)fashe.nengliang=0NPC=GameObject.Find(NPC友军坦克)nengliangkuai=GameObject.Find(能量块)UpdateiscalledonceperframevoidUpdate()if(lifeBuildSettings,在scenesInBuild中可以将你需要加载的场景导入进去,这样就可以实现场景的切换,关卡的设置,在左下角可以导出的模式有PC,Android,flash,ios等等。如图4-16所示:南京工程学院毕业设计说明书(论文)34图4-16游戏的打包以及导出格式单击Build按钮就可以选择打包,将打包后的游戏放在相应的路径中就可以了图4-17完整的导出游戏44.55本本章章小小结结本章详细介绍了如何制作一个游戏,从游戏的开始界面,到游戏的整体设计,细分到游戏的场景,游戏的对象,并在游戏完成的基础上加了一点创新的地方,南京工程学院毕业设计说明书(论文)36角色的血条,敌人的AI,技能的实现等等。最后我们将做好的游戏打包成在PC系统下能够运行的游戏,至此我们的游戏制作已经基本完成了。南京工程学院毕业设计说明书(论文)37第第五五章章游游戏戏的的运运行行和和改改进进5.1游戏的开始运行我们找到在上一章打包的游戏并双击打开,如图5-1所示:图5-1游戏的基本设置在界面中可以选择游戏的分辨率,是否为窗口化,渲染效果等选项,在选项窗口中可以调整游戏的按键。如图5-2所示:南京工程学院毕业设计说明书(论文)38图5-2按键修改单击Play按钮,刚刚我们所设计的游戏就可以开始运行了。图5-3游戏的开始界面南京工程学院毕业设计说明书(论文)3955.22游游戏戏系系统统的的改改进进游戏的基本功能已经完成,但是因为人数和时间的限制,只制作了一个关卡,美工方面也略有不足,细节表现的也不是很完美,仅仅只是用了Unity3D很少一部分的功能完成的游戏,因此必须要在以后的工作中慢慢完善游戏。55.33本本章章小小结结本章主要介绍了如何打开制作的游戏,并且如何设置游戏的画面,按键等等以及总结了一些游戏的不足之处。南京工程学院毕业设计说明书(论文)40结结论论本论文主要介绍了射击类游戏的整个开发过程,包括系统开发准备和相关技术介绍、系统需求分析、系统的整体和详细设计、游戏的开始运行和改进之处等等。这款设计类游戏系统基本完成了预期的功能,模型使用的是坦克,游戏有自己的开始界面,包含了退出,帮助,开始游戏等功能,具体实现了坦克的移动、坦克的射击、敌人的设计还包括了一些创新,比如血条和炮弹发射的联动,还设计了一些技能来丰富游戏的玩法,关卡的变换才,场景的设计等等。本系统界面简单友好、功能齐全、操作方便,经过多次测试,排除了一些问题。游戏运行稳定,unity3D打包的游戏具有一定的安全性,但还有一些不足之处,场景细节描述不够完美,关卡过于单一,游戏的美工也比较粗糙,模型也是从网上导入等,这些问题将在今后的工作中进一步完善。南京工程学院毕业设计说明书(论文)41参参考考文文献献01梅纳德Unity游戏开发实战机械工业出版社,201202宣雨松Unity3D游戏开发人民邮电出版社,201203程明智,王一夫Unity游戏开发技术国防工业出版社,201204吴亚峰,于复兴Unity3D游戏开发技术详解与典型案例人民邮电出版社,201205明日科技.C#从入门到精通.清华大学出版社,201206曾建超俞志.虚拟现实的技术及其应用【M】.清华大学出版社199607倪乐波戚鹏遇丽娜.Unity3d产品虚拟展示技术的研究与应用J.数字技术与应用2010年09期08郭海新.Unity3D与HTML交互吉利的研究J.煤炭技术2011年09期09林荣荣.虚拟仿真技术在网络教学中的应用.科技信息2011年21期10DanielSchuller著.c#GameProgrammingForSeriousGameCreation2010格式南京工程学院毕业设计说明书(论文)42致致谢谢在整个毕业设计过程中,老师一直非常关心我们的毕业设计,督促我每个星期都要记录好完成情况,并且每一周都会和我们进行交流,针对我们设计的成果提出宝贵的建议。每次老师都非常认真的审核和批阅我们提交的设计内容,并耐心的指导和帮助我们。老师给与我们的帮助使我们受益匪浅,她认真的态度是我们学习的榜样。成功的完成了毕业设计,除了要感谢老师,还有跟我一组的同学,他们给了我十分宝贵的意见,并积极的和我讨论研究该课题,当然也有很多网络上的匿名朋友,他们也提供给我珍贵的资料,让我能尽快的掌握软件的各种功能。最后再次衷心感谢给过我帮助的所有人。南京工程学院毕业设计说明书(论文)43附附录录:英英文文技技术术资资料料翻翻译译英英文文原原文文:UUnniittyyTTeemmpplleeCreatingScenesSScceenneesscontaintheobjectsofyourgame.Theycanbeusedtocreateamainmenuindividuallevelsandanythingelse.ThinkofeachuniqueScenefileasauniquelevel.IneachSceneyouwillplaceyourenvironmentsobstaclesanddecorationsessentiallydesigningandbuildingyourgameinpieces.InstancingPrefabsUsethedescribedinthelastsectiontocreateaPPrreeffaabb.YoucanalsoreadmoredetailsaboutPrefabshere.OnceyouvecreatedaPrefabyoucanquicklyandeasilymakecopiesofthePrefabcalledanIInnssttaannccee.TocreateaninstanceofanyPrefabdragthePrefabfromthePPrroojjeeccttVViieewwtotheHHiieerraarrcchhyyorSScceenneeVViieeww.NowyouhaveauniqueinstanceofyourPrefabtopositionandtweakasyoulike.AddingComponent&ScriptsWhenyouhaveaPrefaboranyGGaammeeOObbjjeecctthighlightedyoucanaddadd
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 复杂网络下的控制算法改进-洞察及研究
- 企业内部控制风险评价与改进方案
- 环保企业废水处理方案设计
- 中医综合辨证治疗方案解析
- 大型购物中心物业管理方案设计
- 酒店行业节能环保措施实施方案
- 建筑临电临水施工安全管理方案
- 2025年教师招聘之《幼儿教师招聘》模拟考试题库B卷含答案详解(b卷)
- 2025年押题宝典教师招聘之《幼儿教师招聘》题库含答案详解【b卷】
- 2025年教师招聘之《幼儿教师招聘》经典例题附答案详解【轻巧夺冠】
- 北京京剧院劳动合同制职工招考聘用(必考题)模拟卷
- 教学课件:《新能源材料技术》朱继平
- 专业技术职称与职业(工种)技能人才评价对应表(试行)
- DB37∕T 4328-2021 建筑消防设施维护保养技术规程
- 银行信贷实务与管理课件
- 实习任务书(标准模版)
- 钢结构加工制造方案(60页)
- 大连石化“3.14”亡人事故
- NFPA12-二氧化碳灭火系统标准(2005版)
- 学生体质健康调查表
- 井下变电所高压开关整定计算
评论
0/150
提交评论