本站提供免费毕业论文范文,硕士论文范文参考!
发布时间:2019年03月12号,星期二 快速评论
摘 要0oz知览论文网
随着我国文化产业不断升级,游戏产业同样是文化中的重要组成部分,本文为了熟悉Unity3D游戏引擎,利用C#语言具备运行速度快的优势特点对游戏进行开发设计,为了进一步了解并熟悉该款Unity3D引擎,本文描述了如何制作了*****游戏项目,这个游戏的背景来源于一部叫做*****。通过对该项目的制作和学习,来了解基于C#语言开发Unity3D游戏的利与弊,以及这款游戏引擎未来的优势。本文所述的游戏项目开发所用的开发工具是Unity3D自带的开发工具,叫做MonoBehaviour,选择的开发语言是C#。该游戏项目是一个小型的2D游戏制作,开发周期短,实现所涉及的技术也是学习Unity3D必备的一些知识,但是也是一些重要的基础知识,很多其他的Unity3D游戏制作,也是通过把Unity3D的各个功能模块一点点组织拼接起来而成的。0oz知览论文网
关键词:C#语言;Unity3D;游戏开发0oz知览论文网
引 言0oz知览论文网
理工科所有专业本科生的毕业论文(设计)都应有“引言”的内容。从引言开始,是正文的起始页,页码从1开始顺序编排。0oz知览论文网
针对做毕业设计:说明毕业设计的方案理解,阐述设计方法和设计依据,讨论对设计重点的理解和解决思路。0oz知览论文网
针对做毕业论文:说明论文的主题和选题的范围;对本论文研究主要范围内已有文献的评述;说明本论文所要解决的问题。建议与相关历史回顾、前人工作的文献评论、理论分析等相结合。0oz知览论文网
注意:是否如实引用前人结果反映的是学术道德问题,应明确写出同行相近的和已取得的成果,避免抄袭之嫌。注意不要与摘要内容雷同。0oz知览论文网
书写格式说明:0oz知览论文网
标题“引言”选用模板中的样式所定义的“引言”;或者手动设置成字体:黑体,居中,字号:小三,1.5倍行距,段后1行,段前为0行。0oz知览论文网
引言正文选用模板中的样式所定义的“正文”,每段落首行缩进2字;或者手动设置成每段落首行缩进2字,宋体,小四,多倍行距 1.25,段前、段后均为0行,取消网格对齐选项。0oz知览论文网
1 绪论0oz知览论文网
1.1开发Unity3D游戏背景与意义0oz知览论文网
Unity3D是由Unity Technologies开发的一款游戏引擎,操作界面如下图1.1所示,它集快速性交互性于一体,带有强大的渲染引擎,对DirectX、OpenGL拥有高度优化的图形渲染管道,能够允许开发者能够高效直观的开发出2D或者3D游戏,是一个全面整合的游戏引擎。并且,Unity3D游戏引擎能够十分方便的将开发出 的游戏发布到各个平台,如iPhone、Android等 平台。此外,还可以用UnityWeb Player插件将作品发布成网页游戏,玩 家只需下载这个很小的插件就能轻轻松松的玩Unity网页版游戏。Unity3D游戏引擎通过使用植被系统Unitree,提供了大量的Shader供开发者使用,这些Shader完全足以满足开发者的需求,使得即使在低端硬件设备下也 能 够运行广阔茂盛的植被景观。打开地形编辑器,从左到右依次是:地形拉 升降低、准确的绘制地形高度、地形圆滑、地形文理绘制、地形植被绘制树木、地形植被绘制-草及小物体、地形参数设置。另外,它支持所有主要 的文件格式,并能和其他应用程序协同工作。它还用了PhysX的物理引擎,使得开发者能够轻松的实现各种物理效果。Unity游戏引擎提供了柔和阴影与烘焙的高度完善的光影渲染系统,它的着色器整合了易用性、灵活性和高性能的特点。0oz知览论文网
目前,Unity3D游戏引擎最新版本是Unity4.0,它能将你的作品发布到MAC、Windows、安卓等十个以上当今盛行的平台。此外,购买功能更加强大的正版Unity3D游戏引擎,经授权之后可以安装在2个不同的系统,如一个Windows,一个Mac,官方网址是unity3d.com。0oz知览论文网
Unity3D游戏引擎研讨会正在茁壮发展。第一次Unity3D游戏引擎研讨 会是在2010年5月,举办地点是在韩国,引发了许许多多的商家投资并签订了引擎预定协议。亚洲作为Unity3D游戏引擎公司的一个重要战略地,2013 年在上海举办了研讨会。不久Unity3D游戏引擎公司又宣布取消支持对Flash的支持。0oz知览论文网
0oz知览论文网
1.2 Unity3D游戏开发现状0oz知览论文网
2016年又被称为VR元年。0oz知览论文网
虚拟现实(VR)是当今最前沿的科学技术之一,谷歌,微软,Facebook,苹果,三星,索尼等知名高科技企业对其视为上宾。VR通过计算机虚拟出现实世界,在VR技术影响下,仿佛置身于另一个世界。2016年,是VR技术突破性发展的一年,VR将与各行各业相互融合,产生庞大的岗位需求——VR开发工程师,而Unity已经成为VR内容开发的首选平台。0oz知览论文网
通过使用Unity引擎制作的游戏吸引了全球6亿游戏玩家。,Facebook拥有8.29亿的日常用户。用Unity制作的应用和游戏目前的累计体验量已达到了87亿次。0oz知览论文网
根据Unity官方在2017年8月最新公布的数据[1],Unity中国区的开发者数量、用户活跃度和终端安装量均已经成为全球第一。在世界范围内,Unity占据全功能游戏引擎市场份额的45%,居世界首位。最接近我们的美国,其市场份额只有我们的三分之一。Unity的每月全球活跃用户超过60万。中国区每个月Unity引擎被使用的次数总和高达180万次,居世界首位。美国以150万次使用居世界第二。Unity中国区在3D手机游戏市场的占有份额已经达到75%,超越日本成为世界第一。也就是说在最火的前100款3D手机游戏中,平均每10款就有7.5款是使用Unity引擎制作。0oz知览论文网
很多使用Unity制作的游戏都是跨平台的,其中不乏优秀作品,比如《神庙逃亡2》,《地铁跑酷》,《使命召唤》,《纪念碑谷》等。0oz知览论文网
国内首款基于Unity 3D引擎研发的三国题材网游《将魂》[2](现已停运),自2009年初就进入了研发历程,其后则还有骏梦游戏研发的Unity 3D游戏《新仙剑OL》[3]。0oz知览论文网
针对Unity 3D引擎的研发技术,九众互动CEO朱传靖也曾提过,该引擎基于特定的技术架构,实现了实时生成查看的功能,易用性高,更简化了开发的流程。基于此,九众互动的首款3D网游《将魂》,在游戏品质和研发时间上并没有太多的冲突。0oz知览论文网
在国外游戏厂商应用Unity 3D引擎方面,美国Playnet公司目前已经推出了3D军事战争网游《激战海陆空》。此外,俄国Nival公司研发的新型态Dota游戏《Prine world》在Steam上备受好评,欧美公司的3D魔幻MMORPG网游,都是非常受期待和关注的Unity 3D网游。0oz知览论文网
1.3Unity3D游戏简介及前景0oz知览论文网
Unity3D是一款综合型的游戏开发引擎。其中MonoBehaviour是该公司 自己开发的一个编译工具,自然跟Unity3D是十分兼容的,比如调试等就十分方便。当然,也可以选择自己的编译工具,如Visual Studio 2010,只需要在菜单里面设置一下默认编译工具就行,这样在你创建并打开代码文档时就默认打开了你所设置的编译工具。目前,Unity3D只允许3种编程语言:C#、 javascript、Mobo。其中C#运用较为广泛,因为它的兼容性比较好,便于更好的发布到各个平台。0oz知览论文网
很多游戏引擎起初都是很不起眼的,Unity在2004年诞生于丹麦,后来 把总部设在了美国旧金山。到2014年,其注册人数已达80万,仅是苹果应用商店里面用Unity开发的游戏已达一千五百多个。在未来,随着Web、IOS、Android等平台越来越广泛的应用,因它强悍的跨平台能力和易学的功能界,Unity3D游戏设计引擎必将变大炙手可热。0oz知览论文网
Unity3D是开发者使用最广的游戏引擎,目前有53.1%的开发所开发的游戏是通过Unity3D游戏引擎来开发制作的,其中在一项调查中显示,开发选择这款引擎一个最重要的因素是它的开发周期短。之所以这样,是因为他们都觉得Unity3D游戏引擎简单易学,功能强大;有一定程序基础的人只需要一两个月就能入门。0oz知览论文网
1.4本文主要结构0oz知览论文网
本文主要介绍的是基于C#语言进行Unity3D游戏开发的过程,具体内容有:0oz知览论文网
第一章,对开发Unity3D游戏进行了简单的介绍,说明了目前开发Unity3D的主要技术。0oz知览论文网
第二章,游戏开发的相关知识和开发平台的阐述,简单介绍Unity的诞生和优势以及引擎,介绍C#语言开发游戏相关方法,阐明游戏设计的基本流程和开发流程。0oz知览论文网
第三章,游戏的的总体设计,定制游戏的主体内容,包括名称,剧情,基本玩法,并介绍开发前的项目准备。0oz知览论文网
第四章,游戏各个模块的具体实现,包括场景的制作,主人公的制作,障碍判定计算等。0oz知览论文网
第五章,对全文工作进行总结,说明本文研究主要的研究内容及后续工作展望。0oz知览论文网
2 C#开发Unity3D游戏的原理0oz知览论文网
2.1 跨平台的先进技术0oz知览论文网
Unity3D开发的游戏和应用主要使用的是C#语言,当然前面介绍的其他的2种语言也可以,其编译的过程根据目标平台的变化而不尽相同。在PC、Mac和Android平台上,你所写的代码会被系统编译成字节码,并且可以在Runtime用JIT(Just In Time的缩写,中文意思是即时编译器)编译器执行。如果是在其他的平台上,那么游戏在执行是代码是需要进行一个预编译的,转变成目标机器的本地代码而执行。0oz知览论文网
这就是为什么Unity3D开发的游戏能够支持多平台,能够发布到近十几种十分流行的平台上去,如下面图2.1所示:0oz知览论文网
0oz知览论文网
图2.1 Unity3D多平台性0oz知览论文网
目前为止,注册Unity3D用户已达八十多万,每天在线人数达二十多万,你如果在学习使用Unity3D的时候可以随时上官网论坛上去请求帮助。更重要的一点是你所遇到的问题,其实在之前很多人都遇到过,这样你的问题就很快能得到解决。另外,Unity3D的交互性特点可以让你即使程序基础不是很好也能设计出你想要的游戏。0oz知览论文网
比如有一个2D游戏叫挺过1分钟,游戏场景只有一个,就是一个封闭的长方形界面,一个人物左右移动躲避一个在理想状态下在长方形里面弹来弹去的球,随着时间的增加,球的数量也会增加。这里涉及到的基础知识只有几点,如碰撞检测、物理引擎,游戏大小只有几KB,但是这个游戏却很有趣,吸引力不少人,可以在无聊之际用来打发时间。0oz知览论文网
2.2 C#语言开发游戏0oz知览论文网
Unity脚本开发是整个游戏开发过程中的重要环节,即便最简单的游戏也需要脚本来响应用户的操作,此外游戏常见的事件触发、游戏对象的创建与销毁等都需要通过脚本来控制[4]。Unity 中可以选择两种脚本进行开发,分别为JavaScript和C#,且Unity使用的JavaSript语法与网页开发中基本相同,也可以称其为Unity脚本,而C#是一种分别借鉴了C++和Java优点的语言,国内开发主流的还是使用C#语言,Unity 5不再支持Boo脚本,本文游戏是选用C#进行开发的。0oz知览论文网
目前在发布的Unity5版本中,官方会加强了对C#的支持,而去掉对Boo的支持,现在大概有超过70%的Unity游戏是用C#开发的,而且C#比较JavaScript更加适合搭建大型的项目,如今Visual Studio基本是用C#进行代码编写,且Visual Studio可以直接调试Unity,假设要开发一个大型游戏,无论从逻辑,到框架,到网络层,再到开发Unity编辑器本身,C#都是第一选择,因为基于C#语言实现的系统从运行速率和性能上有不可替代的优势。0oz知览论文网
2.3 开发其他关键技术0oz知览论文网
2.3.1 物理系统0oz知览论文网
Unity内置了NVIDIA的Physx物理引擎,Physx是目前使用最为广泛的物理引擎,被很多游戏大作所采用,开发者可以通过物理引擎高效、逼真地模拟刚体碰撞、车辆驾驶、布料、重力等物理效果使游戏画面更加真实,更加生动。0oz知览论文网
Rigidbody刚体组件,可使游戏对象在物理系统的控制下来运动刚体可接受外力与扭矩力用来保证游戏对象像在真实世界中那样进行运动。任何游戏对象只有添加了刚体组件才能受到重力的影响,通过脚本为游戏对象添加的作用力以及通过NVIDIA物理引擎与其他的游戏对象发生互动的运算都需要游戏对象添加了刚体组件。0oz知览论文网
Collides碰撞体,碰撞体是物理组件的一类它要与刚体一起添加到游戏对象上才能触发碰撞。如果两个刚体相互撞在一起,除非两个对象有碰撞体时物理引擎才会计算碰撞,在物理模拟中,没有碰撞体的刚体会彼此相互穿过。0oz知览论文网
Character Controller角色控制器,角色控制器主要用于对第三人称或第一人称游戏主角的控制,并不使用刚体物理效果。0oz知览论文网
2.3.2 动画系统0oz知览论文网
Mecanim动画系统随着Unity 4.0的升级而出现,这是一种动画中间引擎,使用其可以轻松制作柔和、平滑的动画效果,它提供了为人形角色提供的简易的工作流和动画创建能力。0oz知览论文网
Retargeting(运动重定向)功能,即把动画从一个角色模型应用到另一个角色模型上。0oz知览论文网
针对Animation Clips(动画片段)的简易工作流,即针对动画片段以及它们之间的过渡和交互过程的预览能力。这样可以使动画师更加独立地进行工作,而不用过分地依赖于程序员,从而在编写逻辑代码之前就可以预览动画效果。一个用于管理动画间复杂交互作用的可视化编程工具,通过不同逻辑来控制不同身体部位运动的能力。0oz知览论文网
2.3.3 渲染系统0oz知览论文网
在Unity里,渲染路径(Rendering Path)决定了光照是如何应用到Unity Shader中的。因此,如果要和光源打交道,我们需要为每个Pass指定它使用的渲染路径,只有这样我们才能在Unity Shader中访问到Unity为我们准备好的光照信息。0oz知览论文网
Unity的渲染框架支持正向渲染与延迟光照渲染两种渲染模式、任意多光源、主直线光源的多层级阴影渲染以及各种自定义的材质和后置渲染特效。在Unity5.0版本之前,主要有3种:前向渲染路径(Forward RenderingPath)、延迟渲染路径(Deferred Rendering Path)和顶点照明渲染路径(Vertex Lit Rendering Path)。但在Unity5.0版本以后,Unity做了很多更改,主要有两个变化:首先,顶点照明渲染路径已经被Unity抛弃(但目前仍然可以对之前使用了顶点照明渲染路径的Unity Shader兼容),其次,新的延迟渲染路径代替了原来的延迟渲染路径(同样,目前也提供了对较旧版本的兼容)。0oz知览论文网
2.3.4碰撞检测技术0oz知览论文网
碰撞检测在3D游戏中是非常重要且常见的一件事情,好的碰撞检测要求人物在场景中可以平滑移动,当人物在在场景中漫游的时候,在各种前进方向上如果有被其他物体挡住的情况下,不但不能再继续往前走,而且要尽可能地沿合理的路线滑动。在Unity3d中,碰撞检测的功能是由函数封装好的,我们只需要调用函数就可以实现了。OnControllerColliderHit()函数是用于角色碰撞的,角色如果添加了Charactor Controller (Unity自带的用于角色控制的脚本)则使用这个函数检测碰撞,且不需要加刚体的。一般的刚体之间碰撞使用OnCollisionEnter()函数,范围触发用OnTriggerEnter()函数。0oz知览论文网
2.4 本章小结0oz知览论文网
本章对Unity3D的跨平台优势特点进行了描述,对开发Unity3D的语言进行了简单的分析,说明了C#语言开发游戏的有点,同时介绍了开发Unity3D游戏的关键技术。0oz知览论文网