基于unity游戏制作的论文lhjdoc.docx
《基于unity游戏制作的论文lhjdoc.docx》由会员分享,可在线阅读,更多相关《基于unity游戏制作的论文lhjdoc.docx(38页珍藏版)》请在冰豆网上搜索。
基于unity游戏制作的论文lhjdoc
DONGFANGCOLLEGE,FUJIANAGRICULTUREANDFORESTRYUNIVERSITY
论文题目:
基于unity3d的游戏制作与展示
QQ346977633
系别:
计算机系
年级专业:
0x级计算机科学与技术
学号:
0x50303029
姓 名:
郑xx
指导教师:
林xx
职称:
教授
2013
年
04
月
23
日
Gamedesignanddisplaybasedonunity3d
Title:
(Title单词打印时将隐藏)
Department:
DepartmetnofComputerScience
MajorandGrade:
ComputerScienceandTechnology
Number:
0950303029
Name:
Zhengziwei
Advisor:
professorLinhongji
Date:
May,2013
福建农林大学东方学院本科毕业设计(论文)
作者承诺保证书
本人郑重承诺:
本篇毕业设计(论文)的内容真实、可靠。
如果存在弄虚作假、抄袭的情况,本人愿承担全部责任。
学生签名:
年 月 日
福建农林大学东方学院本科毕业设计(论文)
指导教师承诺保证书
本人郑重承诺:
我已按有关规定对本篇毕业设计(论文)的选题与内容进行了指导和审核,该同学的毕业设计(论文)中未发现弄虚作假的现象,本人愿承担指导教师的相关责任。
指导教师签名:
年月 日
`目录
摘要
随着数字化、科技化的信息技术发展,城市人们的生活节奏也大大加快;通过认识unity3d的游戏制作引擎,对于社会上的两大主流手机市场安卓与苹果,从而设计的一款以轻松,休闲为基调的游戏,来缓解人们在工作上的疲劳,或让休闲之时得到一丝娱乐。
Unity3d是一种游戏专业的开发工具,根据物理碰撞,粒子系统等技术,组建了以windows、andorid、ios等为平台的游戏。
并且对于个体的开发者来说是具有创造力的,它可以在一边测试的过程中一边试玩。
对于unity,人们不可能只是暂时的有想法,在其运行过程中都可以让开发者挖掘到乐趣、bug,然后修改测试直到拥有最吸引人的想法。
其中unity支持生成apk文件并在Android手机上的运行致使它的前景大好。
而且他的目标移动平台可以瞬间转换,解决了一种资源可以在手机、网页、pc和移动平台上进行不同的体验的问题。
本次毕业设计的题目为《基于unity3d的游戏制作与展示》,旨在成功的设计出一款可以运行在智能手机和各类电脑上的休闲、娱乐游戏,在毕业设计完成时,可以通过多个平台,不同方式体验。
游戏共包含7关,从易到难。
提供了一种放松、休闲的方式,实现了对上班一族的工作压力缓解。
关键词:
Unity3D;游戏;Android
Abstract
Withdigital,scienceandtechnology,thedevelopmentofinformationtechnology,thepaceoflifeofthepeopleofthecitygreatlyaccelerated;throughtheaunity3dunderstandingofthegameproductionengine,twomainstreammobilephonemarket,AndroidandAppletodesignarelaxed,casualforthetoneofthegametorelievethefatigueofpeopleatworkorleisuretimetogetatraceofamusement.
TheUnity3dprofessionaldevelopmenttoolsisagame,physicalcollisions,particlesystem,theformationofthewindows,andorid,iosplatformgame.Andforthedevelopmentoftheindividualwhoiscreative,itcanbeinthesideofthetestprocesswhiledemo.ForUnity,itisimpossibletohaveonlyatemporaryideainthecourseofitsoperation,allowsdeveloperstotapintothefun,bug,andthenmodifythetestuntilyouhavethemostattractiveidea.UnitysupportgeneratedapkfileandrunningonyourAndroidphonecausingitpromising.Andhisgoalmobileplatformcanbeinstantlyconvertedtosolvearesourceproblemcanbeadifferentexperienceonthephone,web,PCandmobileplatforms.
Thegraduationprojectentitled"unity3d-basedgameproductionandpresentation",aimedatthesuccessfuldesignofacanrunonsmartphonesandvarioustypesofcomputerleisure,entertainment,games,graduationdesigniscompletedbyaplatform,indifferentwaysexperience.Thegamecontains7,fromeasytodifficult.Providesarelaxed,relaxingwaytoeasetheworkpressureoftheworkingpeople.
Keywords:
Unity3D;games;Android
1引言
Unity3D是一个全面整合而来的专业游戏引擎,它支持多个平台,并且在市场上有百分之十的占有率,他是一个综合性的游戏开发工具。
Unity3d可以支持的平台有window、iPhone和Android平台。
也可以利用Unitywebplayer网络插件发布网页游戏,支持Windows和mac的网页浏览。
本次论文设计的题目“基于unity3d的游戏制作与展示”,这是一个十分具有吸引力的休闲游戏应用;游戏设计的过程利用Unity3D引擎基本的功能组件,包括:
GUI、碰撞器、角色控制、shader等,并独立编写功能、逻辑实现代码,能够实现游戏的切换、关卡的设计、gui的界面设计、游戏音效音乐等的控制、游戏的触屏控制等,为了让上班一族或是休闲人士在轻松时刻得到一些娱乐。
而游戏本身对于智能手机(安卓),各类电脑,全面支持,让其游戏多元化;游戏带有滑稽趣味锻炼敏捷度,使得体验者在享受其过程的同时也得到了娱乐。
而游戏所生成的apk文件更是支持安卓系统,在不久的将来更加易于推广。
1.1本课题的研究背景
生活中,工作里,空闲时人们都需要得到一点放松,休闲。
本款趣味游戏给人们带来一种娱乐方式,游戏中包含了许多闯关环节,意在对工作压力大,生活无聊闲时的一种自我调整等,使得体验者在放松自我的同时提高大脑的敏捷程度。
本游戏的设计功能有:
图像配置
屏幕分辨率
设置图像质量
调整全屏设计
GUI界面
游戏窗口
图片美化
图片导入
音效控制
关卡设计
按钮设计
1.2本课题的研究意义
本次游戏设计的出发点是在于趣味、休闲、放松;针对于一些上班族,在工作疲乏期间可以通过适当玩玩游戏来调整自己,从而设计出的一款单机趣味游戏。
在游戏设计过程中加入极具放松的背景音乐,加上一些适当的关卡设计,在运用unity导出exe文件或apk文件,使得上班族无论想在手机上或是电脑上都可以体验。
而且游戏运行客服端是单机版,并不会占用太多的网络资源。
当今社会越来越科技化,也越来越年轻化。
青年劳动工作者将在未来几十年内占据主导力量,如何使这些人在工作的压力下得到些许放松,也是我们即将要考虑的问题。
本款游戏的设计,使得劳动工作者能在工作期间得到一些放松,从而更好的调整自己。
1.3国内外研究现状
Unity3D是由丹麦Unity公司开发的游戏开发工具,国内在这方面起步比较晚,目前unity3d的应用领域主要有vR虚拟现实技术、pc网游、以及手机网游等。
其中在vr虚拟现实的技术上德国更是取得了一定的成果。
瑞典的DIVE分布式虚拟交换环境更是基于unix的在同一世界不同节点多进程上工作的异质分布式系统。
据我所知unity在生活应用可分为四类:
一是非可视化信息转为可视化信息,例如:
用于产品的设计、降低成本和开发风险;二是区域导航,例如:
超市购物的导航,区域的监控等。
三是虚拟现实技术,例如:
员工培训在新的生产设备投入使用之前可以模拟工厂来提高工人的操作水平;四是游戏的开发,目前能生成apk文件的游戏引擎平台不多,能同时生成exe的pc客户端跟apk文件的游戏引擎平台更是少之又少。
而在我国u3d开发的智能手机游戏比较多,境之边缘,荣誉勋章空降兵,生化奇兵,虚拟竞技场。
由于它在保证华丽3D画面的同时还能实现跨平台的游戏开发,包括PC、手机和平板电脑等不同终端,Unity3D技术开发的热潮正在国内展开,并且受到国内游戏厂家以及多家互联网巨头的支持。
1.4unity3D游戏引擎平台的特点
Unity是一个支持多平台,交互性极强的游戏开发工具,是个权威的专业引擎,目前全球游戏开发使用占有率已突破10%,并不断呈现上升趋势,unity是个兼容2d、3d的开发平台,并且很好的支持了windowvista和xp、win7、andorid、ios等平台使得其更容易满足用户的需求。
目前Unity开发出来的主要网游产品有:
蒸汽之城、捉迷藏OL等。
而Unity软件本身在开发过程中主要有如下这些特点:
综合编辑
通过Unity简单的用户界面,你可以完成任何工作。
这些为你节省了大量的时间。
图形动力
Unity对DirectX和OpenGL拥有高度优化的图形渲染管道。
资源导入
Unity支持所有主要文件格式,并能和大部分相关应用程序协同工作。
一键部署
Unity可以让你的作品在多平台呈现。
iPhone平台发布、andorid平台发布
Unity让革命性的游戏开发降临革命性的设备。
着色器
Unity的着色器系统整合了易用性、灵活性和高性能。
地形
低端硬件亦可流畅运行广阔茂盛的植被景观。
联网
从单人游戏到全实时多人游戏。
物理特效
Unity内置的NVIDIA®PhysX®物理引擎带给你生活的互动。
音频和视频
实时三维图形混合音频流、视频流。
光影
Unity提供了具有柔和阴影与烘焙lightmaps的高度完善的光影渲染系统。
脚本支持
Unity支持3种脚本语言:
JavaScript,C#,Boo。
Unity资源服务器
Unity资源服务器是一个附加的包括版本控制的产品。
文档
Unity为你提供逐步的指导、文档和实例方案。
正是以上这些特点,使得unity在开发的过程中越来越受到人们的亲睐。
1.5其他游戏引擎平台
Unreal主要特点:
1、拥有优秀的编辑工具,强大的渲染引擎支持多线程。
2、拥有高级动画系统,强大的脚本支撑。
3、模拟物理系统,真实的光影效果。
4、具有优秀的地形渲染效果,支持多层材质混合,真实的侵蚀和风化效果,超炫的游戏中的电影效果。
但其不足之处在于:
只支持WindowsXP系统。
Gamebryo的主要特点:
1、提供开发式平台,并且支持游戏所需的资源导出插件。
2、提供操作者三个主要工具分别是资源观察器(AssetViewer)、动画工具(AnimationTool)和场景编辑器(SceneDesigner)。
主要的技术支持有场景图结构(SceneGraph)、渲染系统(FrameRendering)、材质系统(Material/Shader/Texture)、多线程管理系统(Floodgate)、几何模型系统(NiMesh)、动画系统(Animation)、物理系统(Physics)。
但其不足之处在于:
游戏引擎价格偏高,适用于公司团队,不适合个人开发。
Bigworld的主要特点:
1、低风险、低投资集成度高。
2、多进程,脚本使用方便,Server间的跨进程通讯被隐藏性好。
3、使用C++开发的,使用的服务器是Linux,只支持RedHat,而且核心代码,即动态均衡负载代码是不提供源码的。
4、不是针对地图为单元,将地图为单元分担到独立进程中去管理的。
但其不足之处在于:
隐藏细节多造成修改上的难度大有局限性,支持的平台不是很多。
Ogre的主要特点:
1、全面支持Windows,Linux以及MacOSX平台。
2、构架简单支持自动渲染与剪裁。
3、支持多种图片格式以及多种着色语言。
4、物理系统强大光影效果突出。
5、支持的高级插件较多。
6、免费产品更受个体开发用户追捧。
但其不足之处在于:
适合pc端网游,支持的平台不多,手机网游上欠缺。
1.6开发工具
本单元就先简单介绍下此款游戏开发所用的语言、技术或工具,对于它们的详细定义就不多做解释。
Visualstudio2008:
微软公司推出的开发环境,负责本次游戏的逻辑开发。
Photoshop:
AdobePhotoshop,简称“PS”,是一个由AdobeSystems开发和发行的图像处理软件。
Photoshop主要处理以像素所构成的数字图像。
使用其众多的编修与绘图工具,可以更有效的进行图片编辑工作。
Unity3d:
unity3D是由UnityTechnologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,它建立在微软新一代.net平台构架上,是一个全面整合交互强的专业游戏引擎。
C#、javascript:
是unity3d客户端运行的语言,用于提高系统与用户的交互性。
2可行性分析要求
2.1技术可行性
Unity3d游戏制作引擎运用方式分别有单机独立版和网络版,本次课题使用的是单机独立版。
在使用unity3d格式转换插件设置游戏的背景信息和动作信息后就可以对游戏进行导出。
Unity3d格式转换插件可以导出的可执行文件为exe(pc版格式),或apk(手机客户端)。
在游戏的导出之时unity3d本身自带有压缩处理,一般来说能将30M左右的文件转换为4M左右。
在网络上也可以满足传输需求,在本地端更是方便。
在本款游戏的设计过程中本人也遇到过各种技术难题,但是经过努力还是找到了一定的解决办法。
其中最重要的技术归纳为画面效果的设置、GUI功能和功能代码上。
2.2经济可行性
由于unity3d导出的文件在本地生成可执行文件exe,只要玩家拷贝一份游戏的运行客户端便可运行;固不存在增加网络成本的问题,解决了网络资源或费用上的消耗,而基于unity3d引擎平台的跨平台性、互操作性强,它可以支持windows、vista、xp、win7等操作系统而其中最最方便的是建模跟引擎的编程模块在用游戏引擎开发时,也比其他的游戏引擎更廉价,这样就能达到我们所追求的性价比、功效更高。
2.3操作可行性
Unity3d4.0本身自带的模块和控件使得其导出的exe自带有文件功能,就好比给你一个压缩包,你解压后便可安装使用。
并且能体现出它最人性化的一面,例如pc版本的操作上可以分辨率调试,此外在安卓手机上的apk文件需要适配器等功能,在管理上也像其他软件一样,即开即用不耗用内存,而如果你本身想使用网络端,也只需要去网络上下载一个适用于你unity版本网页插件并安装它,便可达到你所需要的效果,并且这个网络端插件可以适用xp、win7、vista。
最后一方面是界面的风格上的设计,本款游戏在界面上采用简单的button控件设置,使用户清晰直观、容易上手。
2.4可操作的平台(如图2-1到2-3)
图2-1苹果系统图2-2安卓系统图2-3windows系统
3游戏的方案设计
3.1游戏结构方案设计
游戏的背景是以轻松、休闲、娱乐为基调,针对的是拥有空闲时间来缓解压力、调整自我的工作人群而设计的二维趣味游戏。
本次游戏设计了三个模式。
分别为带有适配器的exe(pc版)、带有分辨率控制的exe(pc版)、以及适合安卓系统的手机apk版本。
运用不同的版本使得用户端在运行游戏时可以呈现多种选择。
3.2游戏体系划分结构
本次游戏主要划分三个部分:
分别为1、系统入口2、登入界面3、关卡音效等三部分。
(如表3-1,3-2所示)
图3-1体系划分
图3-2版本分块
3.3游戏的各功能划分
游戏的四大组成模块:
系统入口(pc版)、登入界面、背景音效、关卡设计。
系统入口:
图像配置、屏幕分辨率设置、图像的质量、是否使用全屏。
登入界面:
gui界面,游戏窗口。
音效背景:
利用button控件对游戏的音效控制、背景导入。
关卡设计:
随机关卡、顺序关卡、重玩关卡。
3.4游戏总体预览(如图3-3)
图3-3总体结构
4详细设计
4.1框架流程(见图4-1)
NY
NY
NY
NY
图4-1系统框架图
4.2开始程序
这边以pc版本的游戏为例:
在开始游戏的时候我们可以对程序进行配置,如屏幕的分辨率、图像的质量、是否全屏等,而图像的质量是对于一些材质的问题,渲染的细节主要做这些搭配。
(如图4-1,4-2所示)
图4-2分辨率设置图4-3图片质量设置
4.3登入界面
当用户通过游戏的入口后,就会进入本登入界面的关卡,这个界面主要运用了button控件的控制,建立了GUI设计代码,使得用户对本游戏有了直观的认识。
(如图4-4所示)
图4-3界面设置
4.4音效背景
在unity3d的游戏操作引擎平台上,很突出的显示了其制作游戏的集成性,在游戏apk文件或exe文件之前,系统带有自动生成资源包的形式分配好每个模块的音效与背景。
(如图4-5,4-6所示)
图4-5音效设置
图4-6游戏背景图
4.5关卡设计
在我们的游戏启动界面上设计有两个关卡选择,分别顺序关卡游戏和随机关卡游戏,而在每个关卡结束之后设置有两个按钮选择分别为重玩本关和继续下一关;在游戏的过程中可以调整音效开关,并且可以用“w”、“s”、“a”、“d”或上下左右方向键控制器小鸟的方向。
当你发现小鸟碰壁后就会回到原点,在解救到被困小鸟的时候就会进入下一个关卡。
(关卡如下图4-7至4-14)
图4-7第一关图4-8第二关
图4-9第三关图4-10第四关
图4-11第五关图4-12第六关
图4-13第七关图4-14下一关
4.6适配器的设置
适配器(图4-15)的运用是unity3d3.5.5升级到unity3d4.0的标志,也是最根本的区别。
适配器是为了所生成的apk文件运用在手机上创建的虚拟按钮用来代替pc版本下游戏的控制方向键。
图4-15
5功能实现与代码分析
5.1登陆界面GUI
usingUnityEngine;
usingSystem.Collections;
publicclasswelcome:
MonoBehaviour
{
publicGameObjectLevel_1;
publicGameObject[]myLevel;
//Usethisforinitialization
voidStart()
{
}
//Updateiscalledonceperframe
voidUpdate()
{
}
voidOnWelcomeClick(GameObjectClickBtn)
{
intchoose=Random.Range(0,6);//定义七个随机可选关
if(ClickBtn.name=="start")//如果按下的按键是开始
{
FUNCTION.SetActive(this.gameObject,false);
if(Level_1==null)
{
Debug.LogError("Level_1isNull");
}
Else//并且第一关不为空,进入第一关
{
FUNCTION.SetActive(Level_1,true);
}
}
if(ClickBtn.name=="jixu")//如果按下的键是继续
{
FUNCTION.SetActive(this.gameObject,false);
if(myLevel[choose]==null)
{
Debug.LogError("Level_"+choose+"isNull");
}
else//如果在关卡不为空的情况
{
FUNCTION.SetActive(myLevel[choose],true);//选择随机关卡事件
}
}
}
}
5.2关卡设置控件
usingUnityEngine;
usingSystem.Collections;
publicclassNext:
MonoBehaviour
{
publicGameObjectp_next;
publicstaticGameObjectCurrentLevel;//定义枚举变量
publicstaticGameObjectNextLevel;
publicstaticGameObjectnext;
voidStart()
{
bird.FinshLevel=false;
next=p_next;//本关游戏通关,进入下一界面
}
//Updateiscalledonceperframe
voidUpdate()
{
}
voidOnNextClick(GameObjectClickBtn)//判断按键事件
{
if(ClickBtn.name=="