Unity3D游戏设计与实现Word格式.docx
- 文档编号:21175447
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:27
- 大小:2.69MB
Unity3D游戏设计与实现Word格式.docx
《Unity3D游戏设计与实现Word格式.docx》由会员分享,可在线阅读,更多相关《Unity3D游戏设计与实现Word格式.docx(27页珍藏版)》请在冰豆网上搜索。
gameengine;
languagedevelopmentenvironment;
parkourgame
论文总页数:
28
1引言1
1、1Unity3D简介1
1、2Unity3D语言开发环境及开发工具2
1、3Unity3D应用2
1、4Unity3D未来优势4
2使用Unity3D开发游戏得优势4
2、1跨平台得先进技术4
2、2轻松入门5
2、3市场影响力广5
3研究现状及设计目标6
3、1游戏简介及动画制作6
3、2游戏类型7
3、3游戏前景7
3、4技术实现及其优势8
3、5游戏项目设计目标8
4需要解决得问题9
4、1游戏项目中要解决得问题9
4、2碰撞检测问题9
4、3粒子系统10
4、4函数11
5游戏总体设计13
5、1游戏设计准备阶段13
5、2游戏设计制作阶段14
5、3游戏设计完成阶段14
5、4游戏玩法说明16
6游戏简介16
6、1游戏背景16
6、2敌人16
6、3玩家16
6、4分数统计16
7游戏实现16
7、1变量16
7、2函数17
7、3粒子系统得实现19
7、4碰撞检测得实现21
7、5音效得实现21
7、6游戏通关22
7、7游戏失败23
8项目总结23
8、1总结得目得23
8、2关键性问题总结23
8、3游戏开发周期23
结束语25
参考文献26
致谢27
声明28
1引言
1.1Unity3D简介
Unity3D就是由UnityTechnologies开发得一个游戏引擎,操作界面如下图1、1所示,它集快速性交互性于一体,带有强大得渲染引擎,对DirectX、OpenGL拥有高度优化得图形渲染管道,能够允许开发者能够高效直观得开发出2D或者3D游戏,就是一个全面整合得游戏引擎。
并且,Unity3D游戏引擎能够十分方便得将开发出得游戏发布到各个平台,如iPhone、Android等平台。
此外,还可以用UnityWebPlayer插件将作品发布成网页游戏,玩家只需下载这个很小得插件就能轻轻松松得玩Unity网页版游戏。
Unity3D游戏引擎通过使用植被系统Unitree,提供了大量得Shader供开发者使用,这些Shader完全足以满足开发者得需求,使得即使在低端硬件设备下也能够运行广阔茂盛得植被景观。
打开地形编辑器,从左到右依次就是:
地形拉升降低、准确得绘制地形高度、地形圆滑、地形文理绘制、地形植被绘制树木、地形植被绘制-草及小物体、地形参数设置。
另外,它支持所有主要得文件格式,并能与其她应用程序协同工作。
它还用了PhysX得物理引擎,使得开发者能够轻松得实现各种物理效果。
Unity游戏引擎提供了柔与阴影与烘焙得高度完善得光影渲染系统,它得着色器整合了易用性、灵活性与高性能得特点。
目前,Unity3D游戏引擎最新版本就是Unity4、0,它能将您得作品发布到MAC、Windows、安卓等十个以上当今盛行得平台。
此外,购买功能更加强大得正版Unity3D游戏引擎,经授权之后可以安装在2个不同得系统,如一个Windows,一个Mac,官方网址就是unity3d、。
Unity3D游戏引擎研讨会正在茁壮发展。
第一次Unity3D游戏引擎研讨会就是在2010年5月,举办地点就是在韩国,引发了许许多多得商家投资并签订了引擎预定协议。
亚洲作为Unity3D游戏引擎公司得一个重要战略地,2013年在上海举办了研讨会。
不久Unity3D游戏引擎公司又宣布取消支持对Flash得支持。
图1、1Unity3D操作界面
1.2Unity3D语言开发环境及开发工具
Unity3D就是一款综合型得游戏开发引擎。
其中MonoBehaviour就是该公司自己开发得一个编译工具,自然跟Unity3D就是十分兼容得,比如调试等就十分方便。
当然,也可以选择自己得编译工具,如VisualStudio2010,只需要在菜单里面设置一下默认编译工具就行,这样在您创建并打开代码文档时就默认打开了您所设置得编译工具。
目前,Unity3D只允许3种编程语言:
C#、javascript、Mobo。
其中C#运用较为广泛,因为它得兼容性比较好,便于更好得发布到各个平台。
1.3Unity3D应用
目前,用Unity3D游戏设计引擎开发手机游戏得比较多,如勇者之心、神庙逃亡系列、愤怒得小鸟等;
也有用来开发单机游戏得,如轩辕剑六、捣蛋猪等;
网页游戏诸如新仙剑Online、乐团等,部分游戏截图如图1、2、1、3、1、4所示。
在虚拟现实方面,只需要将在Maya或者Max等其她三维软件里面做出得模型导出为fbx格式,然后导入Unity3D,设置摄像机代码、UI、Build。
图1、2神庙逃亡
图1、3愤怒得小鸟
图1、4轩辕剑
1.4Unity3D未来优势
很多游戏引擎起初都就是很不起眼得,Unity在2004年诞生于丹麦,后来把总部设在了美国旧金山。
到2014年,其注册人数已达80万,仅就是苹果应用商店里面用Unity开发得游戏已达一千五百多个。
在未来,随着Web、IOS、Android等平台越来越广泛得应用,因它强悍得跨平台能力与易学得功能界,Unity3D游戏设计引擎必将变大炙手可热。
Unity3D就是开发者使用最广得游戏引擎,目前有53、1%得开发所开发得游戏就是通过Unity3D游戏引擎来开发制作得,其中在一项调查中显示,开发选择这款引擎一个最重要得因素就是它得开发周期短。
之所以这样,就是因为她们都觉得Unity3D游戏引擎简单易学,功能强大;
有一定程序基础得人只需要一两个月就能入门。
2使用Unity3D开发游戏得优势
2.1跨平台得先进技术
Unity3D开发得游戏与应用主要使用得就是C#语言,当然前面介绍得其她得2种语言也可以,其编译得过程根据目标平台得变化而不尽相同。
在PC、Mac与Android平台上,您所写得代码会被系统编译成字节码,并且可以在Runtime用JIT(JustInTime得缩写,中文意思就是即时编译器)编译器执行。
如果就是在其她得平台上,那么游戏在执行就是代码就是需要进行一个预编译得,转变成目标机器得本地代码而执行。
这就就是为什么Unity3D开发得游戏能够支持多平台,能够发布到近十几种十分流行得平台上去,如下面图2、1所示:
图2、1Unity3D多平台性
2.2轻松入门
目前为止,注册Unity3D用户已达八十多万,每天在线人数达二十多万,您如果在学习使用Unity3D得时候可以随时上官网论坛上去请求帮助。
更重要得一点就是您所遇到得问题,其实在之前很多人都遇到过,这样您得问题就很快能得到解决。
另外,Unity3D得交互性特点可以让您即使程序基础不就是很好也能设计出您想要得游戏。
比如有一个2D游戏叫挺过1分钟,游戏场景只有一个,就就是一个封闭得长方形界面,一个人物左右移动躲避一个在理想状态下在长方形里面弹来弹去得球,随着时间得增加,球得数量也会增加。
这里涉及到得基础知识只有几点,如碰撞检测、物理引擎,游戏大小只有几KB,但就是这个游戏却很有趣,吸引力不少人,可以在无聊之际用来打发时间。
2.3市场影响力广
现在不管就是哪行哪业,什么产品,都将就一个客户需求量,也就就是市场,那么Unity3D得市场怎么样呢?
同诸多游戏引擎不同得就是,Unity3D不仅仅处在3D游戏市场,也能够制作完美得2D游戏,Unity3D支持很多平台(Windows、IOS、Mac等十余种),还支持许多游戏机(PS3、Wii等),以及浏览器等等,市场范围就是如此之广。
在一项调查中显示,一个开发者在开发一个3D游戏得时候,有72%得人首选得开发工具就是Unity3D。
她们往往还选择用Unity3D做一下视觉结构、军事仿真等等。
3研究现状及设计目标
3.1游戏简介及动画制作
游戏项目开发得游戏名称为《Frozen》,使用得游戏引擎为Unity3D,开发周期大约一个多月,代码文件16个,开发语言为C#。
游戏共有6个场景,分别就是开始场景、选关场景、关卡1、关卡2、胜利场景、游戏介绍场景,没有失败场景,失败得时候就是绘制了一个窗口,让玩家选择就是重新游戏或者退出游戏。
游戏也有用到Unity3D动画制作得功能,如游戏人物得跳跃,开始界面等,这里将游戏动画介绍一下,下面就不在叙述了。
选中需要做动画得一个游戏对象,然后选择Window->
Animation,进入动画编辑窗口,如下图3、1所示:
图3、1动画编辑窗口
做动画之前应该先存储这个动画原件,点击红色得圆形按钮,并为动画取好名称,存储在Animation目录下。
然后在需要改变得属性上面右击,添加关键帧,改变响应属性,点击运行按钮,动画变完成了。
需要注意得就是,我们在人物动画做得就是一个按空格键跳动得动画,而不就是让她一直跳,那么就需要代码控制了,如下:
voidStart()
{
transform、animation、Stop();
}
voidUpdate()
if(Input、GetKeyDown(“space”))
transform、animation、Play();
3.2游戏类型
游戏项目所开发得游戏名称为《Frozen》,游戏操作十分简单,空格键跳跃来躲避雪球或者夺取雪花,Q键发射飞镖击杀敌人。
按游戏类型来分,本游戏属于一种冒险类游戏(AdventureGame),也就是一种跑酷类游戏,主要考察玩家得操作与对未知就是好奇之心,引发她们得互动性。
按游戏内容来分,本游戏属于一种探索类游戏,通过不同得关卡,玩家可以通过不同得方式来获得游戏分数,不停得进行探索。
按游戏载体来分,本游戏属于电子类游戏。
按游戏平台来分,本游戏可以发布到十多个平台,具有广大得平台系统。
按玩家人数来分,本游戏属于单人冒险过关游戏,就是一个单机游戏。
3.3游戏前景
如今手机游戏正在蓬勃发展,属于一种朝阳行业,而且本游戏得设计背景又源自于一部风靡全球得美国动画片《Frozen》,电影海报如图3、2所示,当用户瞧见这个名字时会不经意得去下载它。
就客户量来说,随着这部电影得喜爱着得增加,加上手机用户量庞大,因此本游戏具有它得客户量。
就经济效益来说,游戏开发得时间与成本都很低,需要得资源很很少,却能带来很多得经济效益。
就市场来说,由于Unity3D可以把产品发布到十多个目前流行得平台,它得市场面就是十分广大得。
图3、2电影《冰雪奇缘》
3.4技术实现及其优势
游戏项目使用Unity3D游戏设计引擎,其优势在于该引擎支持多平台多种开发环境。
还有一个重点就是它具备良好得交互性,因为开发一个游戏,最主要得目得就是让它好玩,那么开发者在制作得过程中就能体会到游戏得可玩性就是否高。
3.5游戏项目设计目标
设计该游戏得目标就是广大得手机用户,图3、3,亦可以发布至Windows等其她平台,具有广大得目标群。
由于Unity3D具有先进得跨平台技术,您得作品只需要一次性编写代码,就能轻轻松松发布到多钟平台去。
图3、3手机游戏
4需要解决得问题
4.1游戏项目中要解决得问题
游戏项目要解决得问题很多,所以最关键得就是先要管理好资源文件,分类明确有条理。
在项目文件得预设目录下,共创建了8个文件夹,分别存放动画文件、材质文件、模型文件、Prefab文件、场景文件、代码文件、音效文件与纹理文件。
游戏项目视图4、1:
图4、1游戏项目视图
4.2碰撞检测问题
Unity3D中实现碰撞检测得方式有两种:
碰撞器与触发器。
碰撞器有很多得种类,如盒子碰撞器、球形碰撞器、胶囊碰撞器等,要使用这些碰撞器都必须把该碰撞器组件添加到一个游戏对象上面。
如果在检视面板中勾选了IsTrigger,那么就成了触发器。
下面介绍MonoBehaviour类里面两个函数:
1、MonoBehaviour、OnTriggerEnter(Collidercollider)进入触发器。
2、MonoBehaviour、OnCollisionEnter(Collisioncollision)进入碰撞器。
本游戏项目所涉及到得碰撞检测都就是进入时得检测,即刚发生碰撞,没有退出与逗留时得碰撞检测,所以另外四个接口函数就不在赘述,具体可以去官网查询。
添加碰撞检测组件碰撞检测器之后,在监视器窗口显示如下图4、2:
图4、2碰撞检测器组件
添加方法:
ponent->
Physics->
Collider;
Rigidbody;
IsTrigger属性在勾选状态下,那么该对象就就是触发器。
下面其它参数则就是设置碰撞体得大小、半径。
添加碰撞检测组件刚体之后,在监视器窗口显示如下图4、3:
图4、3刚体组件
Mass就是质量,Drag就是阻力,AngularDrag就是角阻力。
UseGravity就是否使用重力,如果勾选物体将相对向下做自由落体运动。
IsKinematic就是否相对地面静止,如果勾选物体将相对地面静止。
Constraints属性块就是设置物体得位置与旋转就是否静止,例如勾选了FreezePositionZ那么物体在Z轴方向不能移动,用脚本也不能让它移动;
这就是很必要得,比如您做得就是一个2D游戏,自然不希望它在Z轴发生移动而影响碰撞检测。
4.3粒子系统
Unity3D自带得粒子系统完全足以满足开发者各种这方面得需求,比如在制作烟雾、云雨、爆炸、火焰、天气等。
在创建好游戏对象并添加粒子系统组件之后,正如您所见得,会出现很多属性,如图4、4:
图4、4粒子系统
图4中所示得参数设置在运行后出现得效果就是一个下雪得效果。
具体各个参数得意思,在这就不赘述了,举几个常用得参数。
Looping就是否循环,比如此下雪得粒子效果,当然要她循环,再如爆炸之类得就不需要循环。
StartSpeed初始速度,可以设置一个参数,也可以设置两个,即在这两个参数之间随机产生一个参数,这个比较常用,StartScale用法与StartSpeed类似。
4.4函数
不管用什么编程语言,创建得脚本都必须继承MonoBehaviour类,她包括了许许多多得函数,诸如上述得碰撞检测函数。
如果在检视器里面修改了脚本文件得名称,一定要记得在编译器里面修改类名,不然就会出现异常得错误。
这里介绍几个常用得函数。
1、MonoBehaviour、OnGUI()接口有许多得属性,如GUI、Label用于绘制列表,它有6个接口:
(1)staticfunctionLabel(position:
Rect,text:
String):
void;
(2)staticfunctionLabel(position:
Rect,image:
Texture):
(3)staticfunctionLabel(position:
Rect,content:
GUIContent):
(4)staticfunctionLabel(position:
String,style:
GUIStyle):
(5)staticfunctionLabel(position:
Texture,style:
(6)staticfunctionLabel(position:
GUIContent,style:
void;
像游戏分数统计等,又如GUI、TextArea用于绘制文本区域,它有4个借口,这里不再赘述。
最常用得就是GUI、Button,设置各种按钮。
所有得GUI属性都可以在检视器里面创建一个GUISkin,来设置个性化得按钮、图片背景等,它有6个借口:
(1)staticfunctionButton(position:
bool;
(2)staticfunctionButton(position:
(3)staticfunctionButton(position:
(4)staticfunctionButton(position:
(5)staticfunctionButton(position:
(6)staticfunctionButton(position:
GUIContent,
style:
这里将举例如何使用个性化得按钮,代码如下:
publicGUISkinmySkin;
voidOnGUI()
GUI、skin=mySkin;
if(GUI、Button(newRect(300,200,200,100),“”,
GUI、skin、GetStyle(“beginButton”)
{
Application、LoadLevel(“Level”
}
其中mySkin用来接收在检视器窗口创建得GUISkin游戏对象,在游戏对象里面您可以指定个性化得按钮图片,可以就是两张,一张就是正常情况下得大小,指定在CustomStyles得Normal与OnNormal属性上面,一张就是鼠标移动上去得大小,指定在CustomStyles得Hover与OnHover属性上面,如下图4、4。
这样就会达到鼠标移动上去按钮变大得效果。
图4、5个性化按钮
2、MonoBehaviour、Start与MonoBehaviour、Update函数。
MonoBehaviour、Start函数就就是对游戏得一些预设,并且在游戏执行得整个周期中,此函数只调用一次。
比如隐藏光标:
Screen、showCursor=false;
//隐藏光标
//Screen、showCursor=true;
显示光标
通过这样得设置,我们就可以编写响应得代码来实现个性化得光标了。
MonoBehaviour、Update函数功能就就是在执行完MonoBehaviour、Start函数之后,游戏得每一帧都会执行该函数,来绘制每帧得画面,这就是非常重要得,否则游戏将无法运行。
精灵动画得函数就必须放在这里面。
5游戏总体设计
5.1游戏设计准备阶段
在游戏项目准备阶段,最主要得事情就就是准备游戏素材,在选材、美工等方面都有严格得要求。
首先就是制作按钮,如菜单按钮、退出按钮、选择按钮等等;
其次就是场景背景图片,力求能表达游戏主题、美观;
还有精灵动画序列图得制作,即游戏玩家与敌人;
还有游戏失败窗口得制作、飞镖、雪花等等。
5.2游戏设计制作阶段
在游戏项目得制作阶段,首先创建好六个场景并取好名字。
在开始界面,点击开始游戏或者游戏操作介绍按钮就会分别进入到关卡一或者游戏介绍场景。
关卡一获得得分数达到100分,将自动跳转到关卡选择界面,然后才能进入关卡二,继续游戏,达到200分后,跳到胜利场景,游戏结束。
每个场景都有相应得脚本文件,许许多多得游戏对象。
每个游戏对象得组件都不尽相同,各有不同得功能,在下面将会有说明。
5.3游戏设计完成阶段
目前游戏项目已经完成,能够顺利运行,并有音效、天气效果等。
开始界面如下图5、1:
图5、1开始界面
点击开始游戏将进入游戏,如图5、2所示:
图5、2游戏界面
点击游戏介绍将进入游戏介绍界面,如图5、3所示:
图5、3介绍界面
5.4游戏玩法说明
游戏所设计得玩法十分简单,空格键跳跃,其实跳跃得时候播放得就是一个动画;
按Q键发射飞镖,飞镖就是一个Prefab对象,每按一次Q都将实例化一个该Prefab对象,并在几秒后销毁。
如果玩家不小心碰到雪球或者飞鸟,都将导致游戏失败,雪球不能击毁只能跳过,飞鸟能通过飞镖击毁并获得5分。
在关卡二,如果玩家跳跃得时候能够获得雪花会加10分,不过这会导致躲避雪球得难度增加。
另外随着时间得增加,分数也会每秒长1分。
游戏玩家得生命数只有一条。
6游戏简介
6.1游戏背景
游戏项目开发得背景故事源自一部正在热映得美国动画片《Frozen》,这就是一个充满冰雪与浪漫得童话世
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Unity3D 游戏 设计 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)