毕业设计(论文)-基于Unity游戏引擎的游戏设计.docx
《毕业设计(论文)-基于Unity游戏引擎的游戏设计.docx》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于Unity游戏引擎的游戏设计.docx(45页珍藏版)》请在冰点文库上搜索。
学 号
07022801470125
分类号
本科生毕业论文(设计)
题目:
基于Unity游戏引擎的游戏设计
院
专
(系)
业
电子与信息工程系
计算机科学与技术
班
学
生
级
姓 名
2007级
指导教师(职称)
提 交 时 间 二零一一年五月
摘要
基于Unity游戏引擎的游戏设计
胡涛
(安康学院电子与信息工程系,陕西安康,725000)
摘 要 游戏,目前已经是最大众化的娱乐之一,而其中的3D游戏也是技术含量较高的项目之一。
Unity3D是一个3D游戏开发工具和游戏引擎套件,其中包括了图形、音频、物理、网络等多方面的引擎支持,并且有一个非常强大的编辑器来整合这一切,非常适合于游戏开发。
本文主要是以Unity3.1.0为开发环境,设计并开发一款单机版的三维游戏——直升机大战,旨在介绍直升机战斗游戏的实现方法,并逐步介绍使用Unity3D开发3D游戏的方法和技巧。
通过这次游戏制作,使我体会到了,制作一个游戏所需要做的工作,包括前期的游戏策划,素材的制作,到后期的游戏的设计,代码实现等,最终形成一个完整的 3D游戏,并通过Unity3D选择平台生成可执行文件。
但本次设计的直升机战斗游戏所做工作还不够完善,开始场景中菜单比较简单,游戏中武器只有一种,关卡也只有一个,这些都需要以后进一步设计和完善。
关键词游戏设计;Unity3D;直升机大战
Unitygameenginebasedongamedesign
HUTao
(DepartmentofElectronicandInformationEngineering,Ankang
University,Ankang,725000 )
Abstract Game,hasbeenoneofthemostpopularentertainment ,ofwhichhigh-tech3Dgameisalsooneoftheprojects.Unity3Disa3Dgamedevelopmenttools
andgameenginekit,whichincludesgraphics,audio,physical,networkandotheraspectsoftheengine,andhasaverypowerfuleditortointegrateallofthis,verysuitableforgamedevelopment.
ThisarticleisUnity3.1.0forthedevelopmentenvironment, designanddevelopa
stand-alone version the three-dimensional game-helicopter war, purpose is tointroduce therealization methodofthehelicopter combatgame,andgraduallyintroduced3DgameusingUnity3Ddevelopedmethodsandtechniques. Throughthegameproduction,soIunderstand,andmakeagametodothework,includingpre -gameplanning,materialproductiontothelategamedesign,code,etc.,formingacomplete3D
games,andSelecttheplatformthroughUnity3Danexecutablefile.However,thisdesignworkdonebyhelicoptercombatgameisnotperfect,startmenu,thesceneisrelativelysimple,onlyoneweaponinthegame,onlyonelevel,theserequirefurtherdesignandimprovementofthefuture.
KeyWords Gamedesign;Unity3D;HelicopterWar
目录
目 录
1绪论................................................................ 1
1.1引言 1
1.2Unity3D介绍 1
1.2.1Unity3D简介 1
1.2.2Unity3D特色 2
1.3JavaScript脚本语言介绍 2
1.4研究目的及意义 3
2Unity3D界面及基本操作.............................................. 5
2.1屏幕布局 5
2.2在3D空间查找游戏对象 5
2.3创建游戏对象 6
2.4场景视图导航 6
2.5移动游戏对象 6
2.6缩放游戏对象 7
2.7游戏视图 7
2.8资源的使用 7
2.9复制 8
2.10添加组件 8
3游戏策划............................................................ 9
3.1游戏的简要介绍 9
3.2背景和情节 9
3.3游戏各角色物品和各场景素材....................................................................... 10
3.3.1角色的设计.............................................................................................. 10
3.3.2物品的设计.............................................................................................. 10
3.3.3游戏场景的设计....................................................................................... 11
3.4游戏的操作方法............................................................................................. 11
4游戏的设计与实现................................................... 13
4.1创建游戏工程................................................................................................. 13
4.2地形的设计.................................................................................................... 13
4.2.1创建地形.................................................................................................. 13
4.2.2设计地表轮廓.......................................................................................... 13
4.2.3给地形添加材质和光照............................................................................ 15
4.3模型的导入.................................................................................................... 15
4.4角色及其程序设计.......................................................................................... 16
4.4.1玩家角色设计.......................................................................................... 16
绪论
4.4.2敌方角色的设计....................................................................................... 22
4.5GUI的设计..................................................................................................... 26
4.5.1玩家血条的设计....................................................................................... 26
4.5.2血量及得分显示....................................................................................... 28
4.5.3游戏胜利或结束时的GUI按钮................................................................ 28
4.6医疗箱的设计................................................................................................. 29
4.7游戏的开始场景设计..................................................................................... 30
4.8游戏场景的管理及发布.................................................................................. 32
5总结与展望......................................................... 33
参考文献............................................................. 34
致谢............................................................... 35
附件................................................................. 36
1绪论
1.1引言
早期由于硬件的限制,游戏画面上还没有3D的概念,仅停留在2D的显示状态,随着个人电脑配置的提升和游戏开发环境的进一步完善,人们开始对电脑游戏的画面产生了更为苛刻的要求,以往的 2D画面已经远远不能满足这些挑剔的游戏玩家的眼光。
于是,如何利用现有的 2D显示设备(如各种CRT和液晶显示器)更好的显示出3D的游戏画面以满足玩家们日益增长的画面要求,开始成为游戏制作者和高级程序员们不断挑战的课题。
Unity3D是一个让你轻松创作的多平台的游戏开发工具,是一个全面整合的专业游戏引擎。
它是由丹麦Unity公司开发的游戏开发工具,具体的特性包含整合的编辑器、跨平台发布、地形编辑、着色器,脚本,网络,物理,版本控制等特性。
通过Unity简单的用户界面,你可以完成任何工作。
这些为你节省了大量的时间。
然而对于一个商业化的游戏引擎来说,快速高效的完成类似的特效应该是分内之事。
游戏引擎的初衷就是将游戏开发者筋力转移到游戏的可玩性上来。
那么Unity3D为什么会吸引开发者的目光呢,重要的原因是廉价,并且能够发布为基于浏览器的网页格式。
这个是目前的一大趋势,玩家无须下载庞大的客户端,打开浏览器即可进入游戏。
1.2Unity3D介绍
1.2.1Unity3D简介
Unity3D是一个全面整合的专业游戏引擎。
它是由丹麦 Unity公司开发的游戏开发工具,具体的特性包含整合的编辑器、跨平台发布、地形编辑、着色器,脚本,网络,物理,版本控制等特性。
Unity3D 内置的
NVIDIA®PhysX® 物理引擎带给你生活的互动。
在植被方面使用了Unitree,并内置了大量的Shader供开发者使用,这些Shader即可满足开发者的常用效果,能让开发者轻松的创作多平台的游戏。
Unity 公司在在脚本方面不可不谓之强悍,Unity3D支持JavaScript,C#,Boo,如果开发非网页的独立版还可使用插件。
Unity3D的经典演示就是热带的岛屿,工期为3个人一周完成,可以将其看作一个效果展示,主要展示了地形,水,光影效果。
相信很多人看过后都联想起孤岛惊魂的引擎CryEngine,因此Unity3D吸引了国内很多游戏开发者和VR开发者的目光,非常看好Unity3D的前景。
31
1.2.2Unity3D特色
综合编辑:
通过Unity简单的用户界面,你可以完成任何工作。
为游戏开发者节省了大量的时间。
图形动力:
Unity 对DirectX和OpenGL拥有高度优化的图形渲染管
道。
资源导入:
Unity 支持所有主要的文件格式,并能和大部分相关的应
用程序协同工作。
一键部署:
Unity 可以让你的作品在多平台上呈现。
Wii的发布:
Unity 让业界最流行的游戏平台软件更容易开发。
iPhone发布:
Unity 让革命性的游戏开发降临革命性的设备。
着色器:
Unity 的着色器系统整合了易用性、灵活性和高性能。
地形:
低端硬件亦可流畅运行广阔茂盛的植被景观。
联网:
从单人游戏到全实时多人游戏。
物理特效:
Unity 内置的NVIDIA®PhysX® 物理引擎带给你生活的互动。
音频和视频:
实时三维图形混合音频流、视频流。
脚本:
Unity 支持3种语言:
JavaScript,C#,Boo。
Unity资源服务器:
Unity 资源服务器是一个附加的包括版本控制的产品。
光影:
Unity 提供了具有柔和阴影与烘焙lightmaps的高度完善的光影渲染系统。
文档:
Unity 为你提供逐步的指导、文档和实例方案。
1.3JavaScript 脚本语言介绍
Unity3D支持3种语言:
JavaScript,C#,Boo,本次设计主要使用
JavaScript脚本语言。
JavaScript 是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。
同时也是一种广泛用于客户端Web开发的脚本语言,常用来给
HTML网页添加动态功能,比如响应用户的各种操作。
它最初由网景公司的
BrendanEich设计,是一种动态、弱类型、基于原型的语言,内置支持类。
JavaScript是Sun公司的注册商标。
Ecma国际以JavaScript为基础制定了ECMAScript标准。
JavaScript也可以用于其他场合,如服务器端编程。
完整的JavaScript 实现包含三个部分:
ECMAScript,文档对象模型,字节顺序记号。
1.4研究目的及意义
随着电脑技术的发展,配置的不断提升,游戏开发环境也不断改善,使游戏开发者能开发出画面效果越来越好的游戏。
电脑游戏已经成为最大众化的娱乐方式之一,从以往的二维平面游戏到现在的三维游戏,玩家对游戏的要求越来越高,以往的二维画面已难以满足游戏玩家挑剔的眼光。
游戏从二维向三维发展已成为必然趋势,Unity3D正是一个3D游戏开发工具和游戏引擎套件,其强大的功能能够让游戏开发者轻松的开发出 3D游戏。
并且Unity3D包括了图形、音频、物理、网络等多方面的引擎支持,并且有一个非常强大的编辑器来整合这一切 ,非常适合于游戏开发。
对它的学习使用使得学生对程序和艺术的设计都有一个整体的锻炼和提高。
对其学习知识有总体的检验。
所以本文介绍使用Unity3D开发一款直升机战斗的3D游戏,以此来介绍使用Unity3D开发3D游戏的方法和技巧。
Unity3D界面及基本操作
2Unity3D界面及基本操作
2.1屏幕布局
下载并安装好Unity3D,第一次打开显示的是默认项目,如果使用的是试用版则打开后是一个空项目,需要新建一个项目,选择File->NewProject就可以新建一个游戏工程,然后在开始之前,让我们确定屏布局在2Split模式。
选择Window->Layouts->2Split 这样视图现在分为5个主要区域,如图2.1所示。
这5个主要区域分别为:
(1)场景视图(SceneView):
用于摆放游戏对象。
(2)游戏视图(GameView):
显示游戏运行后的样子。
(3)层次视图(HierarchyView):
列出所有在目前场景视图中所用到的游戏对象。
(4)项目视图(ProjectView):
显示资源目录下所有可用的资源列表。
(5)检视视图(InspectorView):
显示所选中游戏对象的属性信息。
图2.1Unity3d界面
2.2在3D空间查找游戏对象
启动Unity,进入到我们建好的项目,就会看到游戏场景中各种游戏对象,新建的项目开始场景中仅包含一个主相机,你能从层次视图
Hierarchy中看到这个唯一项。
如果在场景视图中看不到相机,在层次视图中点击主相机MainCamera,然后光标移动到场景视图中,按 F(frameselect)键,主相机就显示在场景视图的中心,当然也可以直接在层次视图中双击主相机,也
可以快速在场景视图中找到。
这个技巧可以用来查找你在场景中创建或导入的任何游戏对象。
2.3创建游戏对象
要加入一些游戏对象到场景中,可以用 Unity 菜单 GameObject->CreateOther 创建,也可以从外部导入。
从外部导入游戏对象,首先要导入到项目视图Project中,然后直接拖到场景或层次中。
用Unity的GameObject创建游戏对象,比如选择GameObject
->CreateOther->Plane 就可以在场景中创建一个平面供角色行走。
添加一个立方体到游戏场景中,选择 GameObject->CreateOther->Cube 。
添加一个点光源,选择GameObject->CreateOther->PointLight 。
2.4场景视图导航
用下列方法你可以从任何角度查看3D模型:
旋转:
Alt+鼠标左键
平移:
Alt+鼠标中键缩放:
Alt+鼠标右键
或者你也可以选择Unity左上角的手形工具,选择手形工具后,鼠标左键平移,鼠标右旋转,鼠标中键缩放。
2.5移动游戏对象
在Unity中你可以用下列方法移动三维空间中任何游戏对象:
(1)移动工具(快捷键W)。
选中任何游戏对象,然后按W键,将显示三个箭头,如图2.2所示。
红色是X轴,绿色的是Y轴,蓝色的是Z轴,即红绿蓝分别对应X、Y、Z轴。
要移动一个对象,鼠标左键点击一个箭头并作适当移动,也可以点击中间整体移动。
在移动的同时,检视面板中游戏对象的位置坐标Position的值也会改变,你也可以在此处键入坐标值将游戏对象移动到相应位置。
(2)旋转工具(快捷键E)。
选中任何游戏对象,然后按E键,就可以用鼠标左键来旋转游戏对象,如图2.3所示。
在旋转的同时,检视面板中旋转值Rotation也会相应变化,你也可以在Rotation下面的三个文本框中键入各轴旋转的角度值来旋转游戏对象。
图2.2移动游戏对象 图2.3旋转游戏对象
2.6缩放游戏对象
缩放游戏对象要使用缩放工具(快捷键 R),选中游戏对象,按R键后,会显示三个坐标轴,如图2.4所示。
每个轴末端都有一个小方块,拖动轴末端的小方块来实现对游戏对象在该轴方向的缩放,也可以点击中间,实现整体按比例缩放。
在缩放的同时,检视面板中 Scale的值也会相应改变,也可以直接在该处键入精确的缩放数值。
2.7游戏视图
图2.4缩放游戏对象
游戏视图显示的是游戏运行时的样子,有完整的纹理、照明等,如果在游戏视图中不能看到场景中的对象,是因为相机没有找到正确的朝向。
选中MainCamera 会出现一个倒金字塔线框,这就是相机的视角,如果视角方向没有指向游戏对象,在场景中找到游戏对象,选择MainCamera 并选择GameObject->AlignWithView ,这样游戏视图就会匹配场景视图,当然也可以通过移动工具和旋转工具将主相机移动到合适的位置,旋转到合适的角度。
2.8资源的使用
电脑游戏是由三维模型,纹理,声音文件,游戏代码等构成,这些被
称作为游戏的资源assets。
Unity已包含有标准资源包,甚至是专业的资源包,我们可以使用资源包的资源。
比如我们从内置的资源中添加一个角色到我们的游戏场景中,在项目视图中展开标准资源 StandardAssets 文件夹,预