ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:1.36MB ,
资源ID:11987879      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11987879.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Unity游戏综合课程设计报告.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Unity游戏综合课程设计报告.docx

1、Unity游戏综合课程设计报告湖北民族学院综合课程设计项目名称:Rpg游戏我的奇妙之旅专 业:数字媒体技术班 级:0313413学 期:大三成 员:姓名学号胡芳惠031341302裴王杰031341315唐青031341326数字媒体技术专业制2016年7月第一章项目概述第二章项目研究内容第三章项目关键技术第四章项目实验测试第五章项目结论参考文献第一章 项目概述 本项目是基于unity 3D 平台开发的三维的RPG(冒险类)游戏:英文名称为“the miraculous journey”,又称为“我的奇妙之旅”。这是一个通过玩家控制主角的行走、攻击、拾取,打败怪物、获取资源以便通关进入下一个关

2、卡继续冒险的游戏,所以本游戏是一个偏生存类的游戏,需要玩家通过理性的分析是否去攻击怪物,而去获得最终的胜利。和其他unity游戏相比,我们更注重玩家的体验,比如控制主角的动作的连贯性,技能释放的特效华丽及合法性等等,而作为一个3d类的游戏,我们采用第三人称视角去展示主角的的视角,让玩家不容易出现纯3d视角带来的不适,可以让玩家更快的去适应整个游戏的风格。总的来说,我们小组所做的这款游戏集合了我们组内所有成员对以前所玩游戏的不足之处都加以改进,让游戏更加适应更多的玩家。本文中所述的游戏项目开发工具是Unity 3D自带的开发工具,叫做MonoBehaviour,选择的开发语言是c#。项目的开发过

3、程主要分为前期、中期和后期。前期需要与导师、组员之间进行协调沟通,确定好游戏开发的类型为RPG冒险类游戏,然后组员之间对游戏的开发进行框架设计、游戏规则确定、游戏代码理论设计等前期的设计工作。中期为游戏具体的开发环节,要根据前期的设计要求,查找好素材资源,包括游戏场景、游戏主角原型、NPC原型、UI素材以及音效等资源等,然后对游戏进行场景搭建、功能实现、UI设计、添加音效等操作来实现游戏的开发。在后期需要对已经制作好的初级游戏进行不断的测试,找到并完善游戏中存在的BUG,最后将游戏发布出来。第二章 项目研究内容在本次的综合课程设计中,我们小组设计的这个RPG冒险类游戏的主要游戏规则是:主角寻找

4、水源,躲避并攻击怪物来在游戏场景中延长生存时间,当水源和生存时间达到规定后在魔法阵中就可以进入下一关卡的游戏,中途主角可能会被怪物攻击死亡也会因为缺少水源而死亡。所以在游戏的制作过程中需要小组成员完成的功能和模块琐碎而复杂,总体概括起来包括以下部分:1.游戏场景的搭建:在游戏的开始,我们需要通过导入素材资源搭建好整个游戏的两个关卡场景,给场景添加好灯光、天空等。2.游戏角色的创建:在整个游戏中,包括两个游戏角色,分别是主角和怪物,在创建游戏角色的过程中,首先要对导入后的游戏角色模型进行优化,使其适应游戏场景的运行;其次,要对游戏角色的动画系统进行设计,主角的动画系统包括了idle、run、at

5、tack、death四个状态之间的转换,怪物的动画系统相对简单,包括了walk、die、attack三个动画状态。3.角色的控制实现:角色的控制主要是主角控制,怪物的控制会相对简单一点,我们给没给怪物创建了一条路径,怪物会沿着不同的路径不断地巡逻,发现主角会自动进行追击。主角的控制需要在游戏运行是通过玩家的手动控制,对于主角的移动我们采用的是通过鼠标点击屏幕控制角色运动的方式,然后对给摄像机添加一个跟随脚本,使得游戏镜头会一直跟着主角移动,实现第三人称游戏视角。4.任务系统的实现:根据游戏的前期设计,游戏的任务系统就包括了寻找水源、攻击怪物、达到生存时间进入下一关卡。在这个阶段中要实现的功能有

6、:(1)拾取物品的功能:通关判断主角与水源的距离来判断是否拾取,拾取后要修改物品的显示,拾取受体力值控制,当体力值不足时,需要杀死敌人获得体力值继续拾取水源;(2)技能的实现:根据鼠标位置确定技能释放位置,按键后播放特效,以及要UI中显示技能的冷却,技能的释放会受到主角魔法值的限制。(3)敌人的自动攻击:敌人会根据与主角之间的距离确定一个攻击范围,超出范围后会停止攻击,就近回到路径点继续巡逻。敌人在攻击主角时会定时发功攻击,直到主角死亡。(4)主角的初级攻击:主角的初级攻击是使用自带的武器对敌人发动攻击,可以通过按键实现攻击,不受魔法值限制,到伤害值会比较小。 5.设计开始界面:在进入游戏后给

7、游戏添加了一个镜头拉进移动的动画,然后显示游戏标题,点击屏幕继续后会出现两个按钮事件来实现游戏的加载,加载游戏后,出现一个NPC对话框来交代游戏的背景和主角任务。第三章 项目关键技术 在游戏的制作中,我们是基于UNTIY引擎制作而成,同时还使用了NGUI插件制作UI界面、HUD插件制作血条跟随、fxmaker插件制作特效、Dialogue System插件制作对话等。下面将对游戏中使用到的关键技术进行详细说明:1.音效的实现音效主要有背景音乐、敌人死亡音乐,攻击音乐等,不同功能的音效放在特定的对象下面,如实现背景音乐的添加,选择猪摄像景,添加一个Audio Listener游戏组件,Compo

8、nent-Audio-AudioListener;然后在相应的游戏对象上面添加AudioSource游戏组件,具体步骤如下:Component-Audio-AudioSource; 图 3-12. NGUI插件的使用NGUI插件主要是用来制作UI界面,在本项目中我们使用NUGI制作了游戏开始界面、主角血条、敌人血条、小地图、游戏结束界面等,使用起来十分方便。在开始界面中,通过给主摄像机添加运动脚本实现了镜头拉近的效果,使用白色图片的缓慢消失实现场景渐显效果,logo的加载使用了NGUI的Tween Alpha组件制作动画,如图: 图 3.2开始按钮需要在添加按钮后添加脚本语言实现游戏场景的加载

9、,使用 Application.LoadLevel(1);函数即可。血条的的制作中关键部分是要给血条添加一个UI Slider,使用组件里的value值控制血条的移动。小地图的制作需要给UI ROOT再添加一个摄像机,给主角和怪物脚下添加不同颜色的标识,然后主角和怪物们的移动在小地图中就可以通过标识观察。3.敌人巡逻和攻击我们首先为enemy预制体写了一个脚本,在脚本中我们首先定义一个gameobject类型的数组,然后让enemy从数组的第一个点出发,依次寻路,当到达最后一个点之后,便会重新返回,当这样定义完成之后,我们又新建了一个spawnEnemy脚本来管理所有怪物,这时在里面定义n个g

10、ameObject类型的数组,将事先定义好的点的集合在属性面板赋值,最后通过instantiate方法生成instantiate(enemyprefabs).GetComponent().points = point1;在生成位置点后通过代码实现敌人沿着位置点移动Vector3 endPos = pointscurrentPoint + 1.transform.position;this.gameObject.transform.LookAt(endPos); transform.Translate(Vector3.forward * speed * Time.deltaTime);敌人的追击

11、通过判断主角与敌人之间的距离是否符合追击距离,如果符合追击距离,敌人就会追击主角并发功攻击: if(offset0.5f & offset=2.5f) transform.Translate(Vector3.forward*2*speed*Time.deltaTime); if (offset = IntervalTime) player.GetComponent().SubHP(damage1); timer -= IntervalTime; 4.主角的移动和攻击主角的移动是通过鼠标点击控制的,通过鼠标位置向地面生成一个射线并记录射线点,然后确定主角的移动位置:Ray ray = Camer

12、a.main.ScreenPointToRay(Input.mousePosition); RaycastHit hitInfo; bool isClickGround = Physics.Raycast(ray, out hitInfo); if (isClickGround & hitInfo.collider.tag = Ground) LookAtTarget(hitInfo.point); 主角技能攻击也是使用射线来计算攻击位置的: Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hitI

13、nfo; bool isGround = Physics.Raycast(ray, out hitInfo); if (isGround & hitInfo.collider.tag = Ground & State.MP=30) GameObject go=Instantiate(skillPrefabs,hitInfo.point,Quaternion.identity) as GameObject; State.MP -= 30; foreach (GameObject enemy in gos) if (Vector3.Distance(hitInfo.point, enemy.tra

14、nsform.position) 2f) enemy.gameObject.GetComponent().HP -= 80; if (enemy.gameObject.GetComponent().HP = 0) gos=DeleAt(gos, enemy); Destroy(go,3f); 第四章 项目实验测试游戏开始界面:NPC界面游戏运行图捡东西特技攻击玩家死亡第五章 项目结论 一个基于UNITY的RPG游戏的完成,也标志着本次综合课程设计的工作到达尾声。在整个的设计制作过程中,我们收获了许多,同时发现了一些问题,最后我将对今后的工作有更多的展望。 在设计开始之前,本人大致了解了简单的游

15、戏项目开发,但是由于没有系统地学习脚本编写,所以在动手制作游戏过程中,经常卡在脚本的编写上。例如前面设计中的路点设置的脚本就成为开发中很大的一个难题。在查阅资料和视频之后,成功将一些问题解决,但是薄弱点依然存在。同学和老师在游戏的开发中给予了本人很大的帮助,推荐了一些有用的资料和教程,让游戏制作成功。游戏虽然制作成功,但是存在着以下问题:1.界面不美观;2.游戏在测试中出现较严重的卡顿和延迟现象,说明游戏优化不足;3.关卡较为简单,模型和素材搭配不合理;4.功能上较为简单,可玩性不高。 Unity3D是一款非常强大的游戏开发软件,它有着强大的跨平台能力,在本设计的最后测试阶段中可以看出,同样一

16、款游戏,仅仅因为封装类型不同,在PC平台和在手机平台可以无差别运行。这样一来,免去了游戏在不同平台之间移植的复杂工作,同时节约了开发成本。可以预料,在接下来的一段时间,Unity3D将成为游戏开发行业的热门工具。也就是说,学会运用这门工具,才能更好地在游戏开发行业发展。在今后的工作中,本人将继续学习,此毕业设计的开发过程中遇到的一些问题和游戏本身存在的一些问题将是本人今后一段时间努力学习和工作的方向,同时,还将用心学好Unity3D这个工具。参考文献1浅析Unity3D开发游戏流程及常用技术.中国论文网.2012-10-08.2Unity3D.XX文库.2014-04-23.3宣雨松.Unity3D游戏开发M.北京:人民邮电出版社,2012.06:165183.4龚老师.Unity4.3游戏开发项目实战M.北京:中国水利水电出版社,2014.02:13175.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1