基于Unity3d的绝地武士动作游戏设计与实现_第1页
基于Unity3d的绝地武士动作游戏设计与实现_第2页
基于Unity3d的绝地武士动作游戏设计与实现_第3页
基于Unity3d的绝地武士动作游戏设计与实现_第4页
基于Unity3d的绝地武士动作游戏设计与实现_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Unity3d的绝地武士动作游戏设计与实现DesignandImplementationofJediactiongameBasedonUnity3D内容摘要随着当今社会的高速发展和游戏行业的进步,越来越多的人改变了以前的“玩游戏就是不务正业,浪费时间”的观念。现在,几乎人人都玩游戏,例如《英雄联盟》,《绝地求生》,《守望先锋》,《极品飞车》,《星球大战绝地:陨落的武士团》等等。游戏本质是满足人们消遣以及娱乐的需求。动作类游戏作为人们打发时间的选择,强调玩家的反应能力和手、眼的配合,可以带给玩家刺激和爽快的游戏体验,玩家通过多次游玩游戏或者熟悉怪物的特定攻击流程从而制定出自己的操作技巧。Unity3D作为一款能够快速开发和易于操作的游戏开发引擎,在市场上的使用率越来越高。本课题探究基于Unity3D开发的一款第三人称的绝地武士动作类游戏,设计的灵感来自于《星球大战绝地:陨落的武士团》和《赛博朋克2077》这两款游戏。区别于这两款流行的游戏大作,本款游戏另外结合了星球大战的光剑武器和赛博朋克的游戏场景风格。本文主要描述了该游戏的开发原理,游戏的设计与实现以及游戏功能测试等。为后续希望开发同类游戏的开发者提供借鉴与参考。关键词:Unity3D;动作类游戏

AbstractWiththerapiddevelopmentoftoday'ssocietyandtheprogressofthegameindustry,moreandmorepeoplehavechangedthepreviousconceptof"playinggamesisawasteoftime".Now,almosteveryoneplaysgames,suchasLeagueofLegends,PUBG,Overwatch,NeedForSpeedandsoon.Theessenceofgamesistosatisfypeople'sneedsforrecreationandentertainment.Actiongames,asachoiceforpeopletospendtime,emphasizetheresponseabilityofplayersandthecooperationofhandsandeyes,whichcangiveplayersexcitingandrefreshinggameexperience.Playerscanmaketheirownoperationskillsbyplayinggamesformanytimesorbeingfamiliarwiththespecificattackprocessofmonsters.Unity3d,asafastdevelopingandeasytooperategamedevelopmentengine,isusedmoreandmorefrequentlyinthemarket.Thistopicexploresathird-personjediactiongamedevelopedbasedonUnity3D.Theinspirationofthedesigncomesfromtwogames,StarWarsJedi:thefallenorderandcyberpunk2077.Differentfromthesetwopopulargamemasterpieces,thisgamealsocombinesStarWarsLightsaberweaponsandcyberpunkgamescenestyle.Thispapermainlydescribesthedevelopmentprincipleofthegame,thedesignandimplementationofthegameandthefunctiontestofthegame.Forthefuturedeveloperswhowanttodevelopsimilargamestoprovidereferenceandreference.Keywords:Unity3D;Actiongame

目录第一章 绪论 [5]。玩家和敌人武器的碰撞检测定义一个Bool变量,来判断该脚本是在玩家身上还是敌人身上运行,如果在玩家身上运行,则该脚本需要判断碰撞到的碰撞体的tag为EnemyWeapon,反之则为PlayerWeapon。private

void

OnTriggerEnter(Collider

col)

{

if

(col.tag

==

WeaponName)

{

Debug.Log("碰撞了");

//

print(col.transform.position);

if

(!IsEnemy)

{

Playeram.TryDoDamage();

PlayerGetHit.Play();

Instantiate(AttackEffect,

col.transform.position,

Quaternion.identity);

}

else

{

Enemyac.TryDoDamage();

Debug.Log("Enemyac.TryDoDamage");

EnemyGetHit.Play();

Instantiate(AttackEffect,

col.transform.position,

Quaternion.identity);

}

}

}

void

BoolEnemy()

{

if

(IsEnemy)

{

WeaponName

=

"PlayerWeapon";

}

else

{

WeaponName

=

"EnemyWeapon";

}

}玩家格挡敌人攻击的碰撞检测判断玩家是否格挡了敌人的攻击,只需要在之前武器碰撞检测的基础上加多一个判断是否碰到了格挡物体的碰撞体即可。private

void

OnTriggerEnter(Collider

col)

{

if

(col.tag

==

WeaponName)

{

Debug.Log("碰撞了");

if

(!IsEnemy)

{

if

(Playeram.Playerac.CheckState("Block"))//判断是否格挡了攻击

{

Debug.Log("攻击已格挡");

}

else

{

Playeram.TryDoDamage();

PlayerGetHit.Play();

Instantiate(AttackEffect,

col.transform.position,

Quaternion.identity);

}

}

else

{

Enemyac.TryDoDamage();

Debug.Log("Enemyac.TryDoDamage");

EnemyGetHit.Play();

Instantiate(AttackEffect,

col.transform.position,

Quaternion.identity);

}

}游戏的打包和导出游戏的开发已经完成了,现在就差最后一步,就是要将游戏打包发布到PC端。在Unity3D的工具栏上选择File->BuildSetting,在ScenesInBuild中将游戏中所用到的全部场景导出,这样才能可以实现场景的切换功能。在左下角的导出模式中可选PC,Android,ios等等的平台。选择好PC端之后,点击Build按钮就可以实现打包发布了,如图4-2所示。此时在之前所选择的文件夹里面生成一个exe可执行文件以及Data数据的文件夹,如图4-3所示。图4-2游戏导出过程图4-3导出后的文件游戏测试测试的目的与意义在游戏还没有完全成型之前,我们需要一步步实现游戏的设计,但是在实现过程中,难免会有一些功能还不够完善或者存在问题的地方。我们需要一次次的测试才能发现问题所在,从而对游戏内容以及游戏逻辑代码进行重新修改和编写,再反复的对此功能进行测试,直到最后不会再出现类似的问题。游戏测试的目的与意义就是为了在游戏发布和上线之前,寻找出游戏还存在的一些潜在的问题,通过发现并解决问题,从而提高游戏的整体品控以及降低游戏发布之后的维护和更新成本,因为如果是游戏上线和发布之后才发现问题的话,就会流失一定数量的玩家和降低了游戏的收入,因为发布上线之后才解决问题的话,网络游戏就要进行停服更新,停服的时间游戏是没有收入的,而且会给玩家带来不好的游戏体验,甚至还会因此流失玩家的数量。游戏测试通常分成游戏的功能测试和游戏的性能测试。功能测试一般是对游戏的核心功能进行测试,玩家是否可以正常的移动和攻击。玩家和敌人的攻击碰撞检测函数是否正确调用执行,碰撞的时候是否出现了特定的攻击粒子特效,受击音乐是否正常播放。UI是否能正常的交互,场景是否可以正常加载切换等。性能测试则需要提前预先想到当前游戏是否能支持配置比较低的电脑,以及当前游戏中的性能缺陷和风险。通过反复的性能测试,得出运行该游戏的最低配置要求。运行测试找到导出好的游戏双击打开,在Graphics窗口可以选择游戏的分辨率1920x1080,如图5-1所示。在Input窗口中可以调整游戏的按键,如图5-2所示。单击Play按钮,游戏就可以开始运行了。图5-1Graphics图像窗口图5-2Input窗口功能测试本次测试使用人工测试为主,具体的测试详情如表5-3所示。表5-3功能测试详情测试的功能名称测试情况开始界面UI的交互正常死亡界面UI的交互正常暂停界面UI的交互正常胜利界面UI的交互正常玩家和敌人血条UI的变化正常玩家的移动正常敌人的移动跟随正常玩家的攻击正常玩家的特殊原力技能正常敌人的攻击正常士兵敌人的子弹发射正常玩家被敌人攻击的碰撞检测正常敌人被玩家攻击的碰撞检测正常玩家和敌人死亡的函调用正常是否有地形,人物穿模没有经过多次测试,鼠标键盘以及手柄均可以正常与游戏进行交互,敌人能在攻击以及侦测范围内向玩家发起攻击,玩家也可以正常的攻击敌人以及使用特殊原力技能,敌人与玩家的碰撞检测也可以正常出发,敌人和玩家受伤时的血量可以正常扣除,游戏失败胜利,暂停都正常跳出特定的游戏UI界面。游戏基本功能均已实现,运行流畅不卡顿,如图5-4,5-5所示。图5-4玩家格挡敌人攻击图5-5玩家攻击敌人性能测试测试设备硬件数据CPU:Intel(R)Core(TM)i7-6700HQCPU@2.60GHz独立显卡:NVIDIAGeForceGTX960M运行内存RAM:16G系统:Windows1064位分辨率:1920*1080测试结果:游戏可以在该硬件数据下流畅运行,游戏的各部分功能均正常,没有出现卡死或者闪退的情况,GPU、GPU、内存的占有率均不高,各硬件温度也在正常的范围之内。

总结一个基于Unity3D的绝地武士动作类游戏就完成了,也标志着毕业设计的工作也到达了尾声。在整个的设计与开发制作的过程中受益匪浅,同时发现了自身存在一些技术上的问题,能够对今后的工作有更多的帮助。在设计开始之前,我大致了解了一个动作类游戏的开发过程,并且通过网上的教学视频学习了很多Unity3D相关的知识,但是由于在状态机动画设计和编码方面的学习不够深入,经常在这两个方面上卡住了游戏开发的进度,通过在网上查找相关的资料和教学视频以及询问老师过后,成功的解决了大部分游戏开发上面的问题。但是项目上的问题虽然是已经解决了,但是我在这方面的技术依然不够扎实,仍然需要在往后不断的深入学习实践中提升自己的技术。最后游戏实际呈现出来的打击感不是特别强,以及人物动画之间的衔接和动画融合有些许的生硬。在我开发游戏的过程中还游玩《星球大战绝地:陨落的武士团》这款游戏,寻找设计灵感。本款游戏有几处地方都是借鉴于星球大战绝地:陨落的武士团这款游戏,EA大厂开发的游戏可玩性非常高,让我感受到了个人与大厂之间的设计和技术的差距所在。游戏虽然制作成功,但是依然存在着以下问题:1.场景虽然很精美,但是占用资源量过大,导致游戏帧率有点低。2.游

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论