基于unity2D引擎的情景闯关游戏的设计与实现.doc

上传人:封****n 文档编号:96763958 上传时间:2024-03-19 格式:DOC 页数:40 大小:1.45MB
返回 下载 相关 举报
基于unity2D引擎的情景闯关游戏的设计与实现.doc_第1页
第1页 / 共40页
基于unity2D引擎的情景闯关游戏的设计与实现.doc_第2页
第2页 / 共40页
点击查看更多>>
资源描述

《基于unity2D引擎的情景闯关游戏的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于unity2D引擎的情景闯关游戏的设计与实现.doc(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、摘 要本次课题的游戏设计主题是基于unity2D的情景闯关游戏的设计与实现,也可以说是一个养成策略游戏,游戏玩家代入游戏主角,从主角的视角出发,通过游戏场景中提供的信息,判断游戏走向,在每次关键时刻做出的选择都会影响到游戏后续的发展。在游戏过程中游戏剧情完全按照玩家的选择意愿逐步进行发展。游戏注重玩家的逻辑思维以及一定要具有前瞻性,所有的信息线索都是有关联性的,但不是唯一的,所有找到的线索会关系到之后剧情的的发展。游戏的操作方式很简单,主要通过鼠标和方向键进行操作;但是玩家需要有一定的社会观和生活常识。养成类游戏也可更形象的描述为梦想成真游戏,玩家只要跟着游戏剧情走,就可以在游戏中实现梦想并且

2、获得自己想要的东西 ,在游戏中培养一个特定的人物,通过操控游戏人物的人生,来实现自己不能实现或日常生活中不敢做出行动的事情,在游戏中获得成功的成就感。策略游戏则是一种激励玩家主动找到问题并且通过一定的方式去通关的游戏,游戏玩家通过使用一些技巧在游戏中找到关键的制胜秘诀,从而在游戏中获得成功。这次课题主要是融合这两类游戏集成养成策略游戏。在游戏中主角的人生走向由玩家决定。玩家可以在游戏中通过层层线索最终引导剧情的走向,走向成功或失败落寞的结局。关键词:情景闯关 unity引擎 单人端游 网络游戏 角色扮演游戏 C#AbstractGame design theme of this topic i

3、s based on the unity2D scene to confirm the design and implementation of the game, also can saying is a development strategy games, game players into the leading role from the Angle of view of the protagonist, through the information provided in the game scene, judgment towards the game, each time t

4、he key moment choices will affect the follow-up to the development of the game. In the game in the process of the plot completely carried out in accordance with the players choice will gradually develop. Game pay attention to logical thinking as well as the players must be proactive, all of the info

5、rmation clues are relevant, but not the only one, after all find clues will be related to the development of the plot. Game mode of operation is very simple, mainly through the mouse and the direction key to operate; But players need to have a certain society and life common sense.Develop games more

6、 image can also be described as a dream come true game, players just follow the game story, can realize the dream in the game and get what they want, cultivate a specific character in the game, through the manipulation of the characters of life, to realize there cannot come true or dare not to act i

7、n everyday life, in the game for the success of a sense of achievement.Strategy game is a kind of incentive players take the initiative to find the problem and through certain way to customs clearance games, game players through the use of some skills in the game to find key wins, so as to succeed i

8、n the game. This topic mainly fusion the two types of integrated cultivation strategy game. The Leading role in the game of life is to is determined by the players. Can players in the game through the layers of plot clues led, towards the end of the success or failure lonely.Keywords: situational re

9、cruit unity engine single side Tours online games role-playing games c #目录第一章诸论11.1课题研究背景11.2 研究目的21.3 设计思路2第二章系统开发运行环境及工具32.1 系统开发环境和运行环境32.2 开发工具3第三章 游戏设计需求分析43.1 用户需求分析43.2 功能需求分析43.3 性能需求分析53.4 数据需求分析5第四章游戏情节设计分析64.1游戏世界观64.2游戏概况64.3游戏市场分析74.4游戏的创新创意点7第五章游戏功能实现设计分析95.1 游戏界面95.1.1游戏开始界面95.1.2游戏主界

10、面场景95.1.3游戏的分场景95.1.4游戏结束界面105.2 游戏具体实现设计105.2.1游戏场景设计105.2.2主角设计115.2.3游戏交互设计145.3游戏道具设计205.3.1情节推动道具205.3.2 技能道具205.3.3 背包系统21第六章 游戏测试276.1界面测试286.2兼容性测试306.3功能测试32总结与展望34致谢35主要参考文献36第一章诸论1.1课题研究背景游戏是当代人为了减轻生活压力聊以安慰的一种手段,通过在游戏的虚拟世界中,完成一系列的游戏行动来疏解生活中时常感到不满,气愤,不甘的坏情绪,通过游戏来学会控制自己的脾气,不在现实生活中爆发,在游戏中过滤掉

11、很多消极的情绪。通过游戏使人身心受到洗礼安慰。在游戏中通过控制游戏主角的人生走向成功,获得游戏的满足和成功的体验。提升游戏的代入感氛围,游戏是综合性极强的东西,如何用游戏的方式讲故事,让观众融入到游戏故事中,也就是所谓的玩家的沉浸感;文字、图片、视频、都可以作为艺术的载体,但是游戏作为一个艺术的载体的时候,他的沉浸感是很多其他艺术载体无可比拟的,现对于其他载体,游戏多出来的一个功能就是交互,一个你来我往的过程就是玩家与游戏之间进行互动与反馈的过程,交互让玩家有了参与感与沉浸感。用游戏打动玩家。这样的游戏就是一个成功的游戏。近几年来,中国游戏产业一直处于高速发展期,产业规模不断扩大,新的游戏创业

12、公司层出不穷。游戏行业吸引了很多的年轻IT开发人员,很多人也是因为喜欢游戏而选择开发游戏的专业方向。游戏开发成为当前一个热门的话题。Unity3D是一个专业的游戏引擎,可用于多平台的游戏开发设计。基于unity开发的游戏很多,其中包括网页游戏中的绝代双骄、诛仙、梦幻国度等,而手机游戏则包括王者荣耀、炉石传说、神庙逃亡等多款游戏,在这里就不一一列举。用unity开发游戏是现在游戏行业的大热,使用unity开发游戏大大降低了游戏开发者开发出一款游戏的难度,用更少的时间开发出一款优秀的游戏,把更多的时间放在游戏内容设计、美术设计等方面。Unity的画面效果其实也是很强大的,一点都不逊色于虚幻引擎3。

13、并且unity版本也一直在持续更新迭代,unity最新的版本是unity 2019 1.0.8;所以不用怕unity跟不上游戏设计行业的快速发展。unity每次更新都会有很多新增的功能组件,更加方便游戏的开发需求,大大减少游戏开发的时间成本。本次课题的中心是开发出一款2D情景策略闯关游戏。玩家通过不一样的选择决定控制游戏主角,走向不一样的结局。使游戏富有多样性。1.2 研究目的在多类游戏中,重度游戏占了51%,轻度游戏21%,中度游戏28%。市场上的游戏像英雄联盟,王者荣耀,刺激战场的男性玩家占了绝大多数,而像奇迹暖暖这类的养成游戏女性玩家又占了绝大多数,市场上的很多游戏都是男女玩家比例失衡的

14、。所以希望能开发出一款不管是男性玩家还是女性玩家皆有兴趣,可以玩的游戏;这个游戏不偏重技巧打斗类,主要是游戏内容上吸引玩家,玩家跟随游戏的剧情跌宕起伏,一款游戏能在众多游戏中脱颖而出需要的是开发者脑洞思维的扩散,不仅要有别出心裁的游戏背景故事,还需要具有游戏本身的意义和目的,游戏试玩体验感也要有,要能在玩家初次试玩时就抓住玩家,不能是一次性游戏。关卡的设置难易程度也要多加考虑,调查实验之后确定游戏难度等级。一款没有意义和目的的游戏是没有灵魂的。想要通过游戏去宣传一种精神。在游戏中探索到价值。1.3 设计思路在内容上有区别于以往的游戏,在游戏故事背景上创新,建立基于unity2D的RPG角色扮演

15、游戏模型。同时在游戏玩法上也有创新,区别于以往的2D游戏,游戏结果随机,游戏结局多样性,使游戏更加富有未知性。既能休闲娱乐,也能成长进步。因为国内游戏行业起步较晚,很多游戏在设计上都会多多少少借鉴国外的出色游戏,包括游戏风格,UI设计等,在本课题里,虽然会借鉴其他出色游戏,但是一定会创新游戏的交互界面,游戏剧情也是自己完成设计,绝对不会抄袭他人设计的游戏内容,一款游戏如果只是从别人的游戏修改制作出来的,那这款游戏毋庸置疑是没有发展前途的,设计开发一款游戏要把自己的精神寄托在游戏里面,游戏行业需要多创新,要有不一样的东西,要有新鲜感,要能跟紧时代的潮流,如果能把最新发生的一些有意思,有意义的事情

16、融入到游戏中,更能使玩家更有代入感了。让游戏玩家在体验游戏的过程中感受到游戏制作者的用心,那么这款游戏就是有价值的游戏。第二章系统开发运行环境及工具2.1 系统开发环境和运行环境图2.1.1-系统开发运行环境2.2 开发工具Unity 2017.1.0、Tilemap、Visual Studio、Photoshop第三章 游戏设计需求分析3.1 用户需求分析游戏做出来就是给人玩的,所以对游戏用户的需求分析是至关重要的,考虑到当前疫情的影响,几乎全世界的人民都遭受到了疫情的侵扰,这次疫情给全中国人民也带来了惨痛的经历,所以为了结合时事,决定将疫情的因素也加入到游戏中去。用疫情这条线贯穿整个游戏故

17、事,游戏玩家通过角色扮演融入到游戏中去,完成解密冒险。找出游戏的关键点,完成游戏任务。让玩家认识体会到的是在游戏通关过程中跟随游戏人物去选择体验一下游戏主角的人生,从而得到人生的提示。在适当的关卡会给游戏故事留疑,玩家在游戏过程中不能放过任何一个细节线索。3.2 功能需求分析主要需要设计实现的是游戏角色的动画设计,以及与NPC的交互设计,还有场景的设计以及道具系统和对话系统还有UI界面的的设计。图3.2.1-系统功能图3.3 性能需求分析因为游戏现在设计主要是设计成单机游戏,没有连接数据库等操作,所以对性能方面的要求主要是通过游戏运行时的操作是否流畅,以及游戏是否有掉帧的情况发现。多个程序一起

18、运行时,察看游戏是否有操作异常的情况,如果游戏出现了性能方面的问题,考虑是否是场景元素过多,赘余的情况下要考虑是否删除一些无用的元素。3.4 数据需求分析数据方面主要涉及到NPC和玩家以及道具方面。玩家与NPC的对话主要存储在对应的Text文本文件中,每个不同的NPC对应的文本不同,获取到的游戏效果也不同,而游戏中存在两种形式的NPC,静态和动态,动画效果有不同,但是交互方面实现的功能是一样的。而道具的信息,是借助背包系统的数据库存储的,这个数据库只在游戏中可以实现,没有借助外部软件。通过这个数据库,将道具的数量,信息,名字等数据存储保存,玩家下一次进入游戏也可以找到这些数据。数据之间的关系,

19、具体如下图所示:图3.4.1-数据E-R图第四章游戏情节设计分析4.1游戏世界观游戏名字是叫“一日”,“一日”是一款2D古风奇幻解密冒险游戏,游戏通过主角的视角,误入一个古怪离奇的小镇,在镇里有很多奇怪的事情每天发生,仿佛时间静止保存在这个时间段一样。看似荒诞的情节经历,究竟是沉迷于幻境还是诅咒。游戏主角通过在小镇里探索发现找到事情的起源以及找到解决方法。同时在这段探险过程中慢慢发现自己的身世之谜。通过2D的像素场景角色表达,展现出游戏剧情,同时离奇的游戏故事更是给玩家创造出一种新奇的游戏体验。游戏最终想表达的主旨是,活在当下,前行才有意义。生命的意义正是如此生老病死不可避免,这座小镇就像是一

20、座百宝箱,在喜怒哀乐中透射人类的梦想和苦痛,没有人应该在幻想中得到永恒,但是活着的人必须放下或者一起离开。4.2游戏概况玩家代入主角视角,游戏主角是一个剑客,从小是由母亲一个人养大的,从来没有见过其他亲戚,母亲因病去世,在收拾母亲遗物时发现了母亲写的一封没有寄出的信,信纸已经泛黄稍一用力可能就会被弄破,主角在信中发现母亲提到了一座小镇以及一个名字:“阿廷”主角心中的疑惑如萌芽般迅猛生长,于是主角决定出发去那座小镇找到答案。可是这座小镇好像遗世独立的孤岛一样,打听到的消息是在小镇附近可以听到小镇的居民生活传来的声音,但是进去的人没有一个人出来的,数十年如一日已经过了十多个年头了。路上遇到了几户人

21、家都是家人进了小镇没再出来的,抱着帮他们进去找亲人的委托,同时解开自己的身世之谜的念头,剑客进入了这座小镇,进了镇子以后,发现镇里的村民都是很正常的生活着,主角路上遇到了很多事情,在进入小镇的当晚,恰巧镇里的镇长女儿结婚,镇上所有的村民都收到了邀请,主角也跟着去看了这场盛宴,晚上回到客栈打算先休息一晚,明天再帮忙找一下那些委托他的外村村民的家人。第二天醒后,主角出去找线索时发现自己昨天走过的街道同样的人在做同样的事,说的话也和昨天分厘不差,今天的所有事情和昨天的经历完全一模一样。不仅如此,第三天,第四天接下来的每一天都在上演着和前一天同样的情景。主角在其中寻找事情的真相,在镇里的每个隐蔽的角落

22、都有可能找到至关重要的线索,所以在解密探索的过程中,玩家需要细心观察周遭的所有信息,找到最终的真相,让小镇的村民过上正常人的生活,让所有的一切都回到正轨。4.3游戏市场分析现在游戏行业越来越多的人才涌进,使得游戏行业展现出了多元多样性,而游戏行业的百花齐放也使得游戏开发团队需要迸发更多的想法创意去制作一个有趣有可玩性同时又能有一定盈利性的游戏,而游戏要有趣可以是游戏玩法的新颖有趣,也可以是美术素材让人耳目一新,但是一定是离不开游戏的剧本设定的。“一日”通过新的游戏创意,使得游戏脱颖而出,如同一颗新星闪烁,拉拢更多的游戏玩家。这是一个全新的游戏故事,在游戏过程中让玩家解密并且探索,最终找到成功的

23、终极道路,最终使得玩家体会到这款游戏的意义。这款游戏适合于所有热爱思维逻辑游戏的玩家。游戏也会适当留白,给玩家意味无穷的游戏体验感。同时也使得游戏有更多的开发空间,游戏也能有前景发展。这款游戏如果能够上市,还是有他的时常价值的。4.4游戏的创新创意点游戏的创新点在于游戏通过不断循环场景内的一切设定,让玩家在场景中找到关键点,打破设定,打破这个僵局,并且通过层层关联,破坏这一日复一日不曾改变的局面,找到事情的真相,让生活回归正常,让村民生活在真实的世界里。其实每个出彩并且受到大众喜爱的热门游戏都是一定有区别于其他同款类型游戏的创新点的,有时候这个创新的点是吸引人的,有时候创新点也可能不太被大众所

24、接受,所以创新不是一味的追求不一样,还要这种创新是不一样的有趣才算是一个好的游戏创新点。“一天”作为一款情景闯关游戏,吸引玩家的点在于游戏剧情的新奇,不同以往游戏的剧情设定,在游戏试玩体验上就有别于同类游戏,让玩家体验游戏时有眼前一亮的游戏体验感。游戏策划需要脑洞,越古灵精怪,越离奇,玩家试玩的体验才会有所提升。通过抓住玩家的眼球,使游戏的推广得到进一步的发展。第五章游戏功能实现设计分析5.1 游戏界面5.1.1游戏开始界面游戏的最开始是一个Timeline动画,最开始是先介绍一下游戏的大概剧情和玩法,播放完游戏介绍之后,就到了游戏的开始界面,开始界面比较简单,只有一个游戏开始按钮。点击就会进

25、入游戏的主场景,开始游戏进度。5.1.2游戏主界面场景游戏的主场景是整个城镇的大览,这个场景;里的UI道具有设置按钮框,主要控制音效的大小。还有背包按钮,用来储存在游戏世界中收集到的道具,点击打开背包界面,背包界面主要有存放道具的一个个小格子,在小格子下面有一个使用按钮,选中格子内的道具的时候,选择点击使用按钮,使用道具,同时,背包系统格子里的相关数据数量减少或者该道具清空。还有一个道具描述区,点击格子内对应的道具,在道具描述区会展示相关商品的信息。5.1.3游戏的分场景游戏的分场景主要有知府居住的府衙:府衙里的道具摆设以及里面可以交互的道具和NPC;玩家在府衙里需要完成的任务是最终决定游戏故

26、事走向的关键,还有一个幻想森林的场景。在这里面,玩家可以得到游戏剧情的相关提示,和获得关键性道具。5.1.4游戏结束界面游戏结束之后先播放一个timeline动画,对游戏做一个总结以及对游戏的寄托寓意的阐述。5.2 游戏具体实现设计5.2.1游戏场景设计因为游戏场景较多且场景比较大,所以直接通过Tiledmap来编辑场景,将绘制好的切片素材导入Tiledmap的object面板,新建一个地图,用灌溉平铺工具将地图背景设置统一一下,然后修改名字为background,放置在最底层,再新增path、gound、building、Ornament等层,根据情况适当添加层。为了智能编辑path层,借助

27、Edit Terrain information工具编辑path素材,最后还得添加一个collision层,给场景中不能穿过的建筑设计外层添加collision,collision层放在所有层的最顶端,编辑完成之后,修改collision的opacity为0,让collision层显示为透明,地图编辑设计好之后就可以借助Tiled2unity导入unity中了,打开Tiled2unity,先将Tiled2unity的包导入unity中,然后导入地图到unity中,导入地图时要把vertex scale 修改成0.01,让每个像素对应100个单位。图5.2.1.1-主场景设计图5.2.2主角设计

28、(1)准备图片素材直接将人物的素材拖拽进unity中,图片素材必须是精灵图,在导入时需要设置一下相关参数,在unity的菜单栏中找到并且打开编辑器设置窗口,将Mode设置为2D,之后导入的图片素材就会自动转换为sprite格式了,同时如果素材在一张图片上需要切割时,就要修改图片的sprite Mode为Multiple,然后在sprite editor界面编辑切割就可以应用了。(2)创建动画创建一个文件夹存放动画,分批次拖拽素材到场景中,如果拖拽进场景之后不显示的话就修改人物属性面板的additional settings里的sorting layer,修改人物的scale为合适的比例大小就可

29、以在场景中显示了。分别生成walk_down、walk_up、walk_left、walk_right四个动画,进入animation面板,调整角色状态动画播放速度为合适的速度,角色多种状态的动画设置好, 删除场景中拖拽的素材,新建一个空物体命名为player,拖拽一个动画到player的组件面板中,就会生成player的animator了。如下图所示:图5.2.2.1-Animation动画设计(3)Animation页面编辑然后点击进入animator面板新增一个blend tree(混合树)命名为idle,然后进入_animation文件夹,复制生成四个新的animation,并且命名为

30、idle_up、idle_down、idle_left、idle_right。将所有的animation动画都拉入animator面板,然后进入animation面板,idle状态下的动画都只保留最中间的一帧,然后再把这一帧拉到最前面,在walk状态下的所有动画的最后添加一帧是对应idle动画的那一帧。(4)Animator页面编辑Idle添加参数x和y都为float型,再添加一个iswalking为bool型,之后再点击animator面板里的idle混合树,进入相关界面,在这个混合树编辑界面,获取相关参数,并且通过操作对参数进行混合。修改blend tree的blend type 为2D

31、Freeform,然后Parameters的参数修改为x和y,然后添加四个motion filed ,将idle的四个animation分别拉入motion中,数据如下表所示:XYZIdle_up010Idle_down0-10Idle_left-100Idle_right100表5.2.2.2-idle方向数据图5.2.2.3-idel方向动画设计在animator面板复制粘贴idle,修改命名为walk,进入混合树界面,修改对应参数即可。具体参数数据如下表和图所示:XYZWalk_up010Walk_down0-10Walk_left-100Walk_right100表5.2.2.4-wa

32、lk方向数据图5.2.2.5-walk方向动画设计然后在idle和walk状态之间设立连接关系,然后在对应的连接中的inspector面板修改exittime、fixed duration、transition duration都设置为0,这样能使不同状态之间的切换更加流畅,然后在对应的inspector面板添加condition就可以了。(5)编写人物移动脚本playerMoving图5.2.2.6-人物移动代码(6)注意点人物的属性面板一定要添加Rigibody2D,Freeze Rotation 记得勾选Z,这是为了防止人物在发生碰撞时,产生旋转。游戏角色也要添加Box Collider

33、 2D ,然后在场景中拖拽调整为合适大小。5.2.3游戏交互设计(1)相机的跟随设计创建相机跟随脚本cameraFollow,然后将脚本添加到Main Camera的组件中,将人物拉入target参数栏中,代码如下:图5.2.3.1-相机跟随代码(2)场景切换 将需要的地图都拉入场景中 在开始的地图下面添加一个空物体(empty),并且命名为exits ,在exits下添加一个空物体命名为Main door,在Main door里面添加一个Box collider2D组件,调整Box collider2D的位置为合适位置,然后在开始地图下再添加一个空物体修改命名为Targets,在Target

34、s下添加一个空物体并且命名为Main door,这里就不用加碰撞体了。 在跳转的地图里添加一个空物体(empty),并且命名为exits ,在exits下添加一个空物体命名为front door,在Front door里面添加一个Box collider2D组件,调整Box collider2D的位置为合适位置,然后在开始地图下再添加一个空物体修改命名为Targets,在Targets下添加一个空物体并且命名为Front door,这里也不用加碰撞体。 添加跳转的脚本jump图5.2.3.2-场景切换代码 将jump脚本分别加到两个exits下的Main door和Front door的组件中

35、,将跳转的地图里的Targets里的Front door拉到Main door组件脚本的参数里,将开始场景的Targets里的Main door拉到Front door组件脚本的参数里。然后exit下的door都要勾选 is Trigger选项。(3)场景切换时的淡入淡出 添加一个Canvas面板,命名为HUD,在里面添加一个image,并且命名为screen fader,screen fader的inspector面板添加一个Tag 命名为Fader,并且将image的tag修改为Fader,然后调整image和canvas的位置,都是要居中,点击center就可以了,修改screen fa

36、der的stretch 为充满,color修改为黑色。 打开Animation面板,在Animation文件夹里新建一个screen fader文件夹存放fader的animation动画,新建两个animation分别为fader_in和fader_out,分别添加属性image-color,将fader_in的color.a开始帧的值设置为1,最后为0,fader_outde color.a开始帧的值设置为0,最后一帧的值为1。最后将fader_in和fader_out的inspector面板的loop time勾选去掉。 打开screen fader的animator面板,在fader_

37、in和fader_out之间建立连接,新建两个参数faderin和faderout,参数类型为isTrigger,fader_in到fader_out的condition选择faderout。fader_out到fader_in的condition选择faderin。 新建一个screenfader脚本,修改jump脚本,添加的具体代码如下: 图5.2.3.3-jump代码将脚本挂在screen fader上,进入animation面板,在fader_in和fader_out的最后一帧添加Animation Event ,选择Animation Complete()。(4)NPC对话NPC全称

38、Non-Player-Character,意思为非玩家游戏人物,不受玩家控制。在这里为了与NPC产生交互效果,要设计出来一个Dialogue System,需要用到UGUI用于制作UI界面,TextAsset用于访问外部文档,Startcoroutine协程。图5.2.3.4-互动UI 新建一个Panel,修改Canvas的Render Mode为World Space(使UI可以出现在指定位置),revert canvas的位置,将Main Camera拉入Event Camera栏,修改sorting layer为最高级,新增一个layer层为dialogue。修改panel大小和位置,将

39、color的A栏的不透明度调到255,使对话框图片完全显示,在source image栏修改Image,在panel下新增一个text,在scene中按F键,再按R键,点调整框的的中心点向左和向下等比例调小Text,按T键调整本身的大小,在Asset里创建一个Font文件夹,将自己想要的文字导入,切换Text的文字类型。NPC的inspector面板里面的Boxcollide2d组件里的isTrigger要勾选上,否则不会显示提示按钮。 新建一个dialogSystem脚本,将脚本拉入对应的panel中,将panel下的text拉入Text Label栏,将panel下的对应的image拉入f

40、aceImage栏,将创建好的Text文本拉入Text File栏,index栏数值输入合适大小,只能大,不能小。图5.2.3.5-dialogSystem代码图5.2.3.6-dialogSystem代码 让文字像动画效果一样一个一个敲击上去,修改dialogSystem脚本代码,添加方法: 图5.2.3.7-dialogSystem代码将方法添加到OnEnable和update中,添加一行bool textFinished,TextFinished参数是为了判断文字是否输入以及输入完全之后将这行数据删除。(1) 存储和加载游戏在面板中右键新建一个空的项目,用来做存储的作用,修改命名为Gam

41、eSaveManager,在_script文件夹中新建一个脚本,用来编辑游戏的存储,修改命名为GameSaveManager,将脚本挂载在GameSaveManager上,文件存储系统要用到using System.IO,代表文件的输入输出,将数据存储成一个文件,要使用一个方法,Application.persistentDataPath,可以获得游戏的数据的文件夹,不同操作系统文件夹的位置不一样,在UI界面添加两个按钮,分别是做加载用和保存用。分别添加on click点击事件,将GameSaveManager拖拽到None(Object)栏,然后在no function下拉框,选中GameS

42、aveManager下的存储方法和加载方法,using System.Runtime.Serialization.Formatters.Binary;用于使用二进制序列的方法。5.3游戏道具设计5.3.1情节推动道具主角进入这个城镇的其中一个原因就是为了解开自己的身世之谜,而主角自己身上是有一个玉佩的,这个玉佩在主角之后的身世解开是有关键性作用的,而主角身世的解开也对游戏剧情的发展起到推进的作用。5.3.2 技能道具技能道具有银子,一封信件,以及干粮水等。这些需要主角在游戏过程中完成一些任务,或者在特定的情况下获取,这些都有推进剧情发展的作用。5.3.3 背包系统涉及到游戏中的道具的获取和使用

43、,在玩家获取到这些道具之后,需要对道具有个存储的工具。背包系统主要工作有:(1)背包UI图形设计在Canvas画布下创建一个panel面板,修改命名为bag,将bag面板居中处理之后,修改bag大小为合适大小,将背景图片素材拉入bag下的source image栏,然后在color栏修改opacity(不透明度)为255,使图片可以完全显示,然后在bag下添加一个image作为bag的title,修改命名为title,然后在source image栏选择一个存放title的背景图片,然后在inspector面板找到set native size按钮并点击就会还原图片原始的大小,再拖拽图片到合适

44、的位置,调整大小为合适大小,然后在title下添加一个text文本框,修改文字为“包裹”。然后修改文字的大小样式,对齐方式,然后在bag下新增一个按钮,起关闭bag的作用,修改名字为close,删除button下的text,将close按钮样式图片拖拽到close的source image栏中,然后还是点击set native size按钮还原图片原始尺寸,修改close按钮的对其方式为居中对齐,然后调整到合适的位置,在close的inspector面板中找到on click,点击“”号,添加一个on click事件,将bag拖拽到none(object)处,然后在none function下

45、拉框点击选中GameObject下的SetActive(bool)。图5.3.3.1-背包UI设计在bag下新增一个panel,修改名字为Gird,将图片素材拉入到source image处,调整位置和大小到合适的状态,然后在bag下再添加一个test,修改命名为description,目的是为了点击包裹内的具体物品道具时,在道具下面展示道具的描述,拖拽到合适位置,调整样式,大小,对齐方式。在Gird里添加一个component(组件):Gird Layout Group ,在gird下新增多个image,然后在Gird Layout Group 组件里调整Image的大小以及所有image之

46、间在x轴以及y轴之间的间隙大小为合适的间距,然后为了显示道具物品的数量,在image下新建一个text,修改文字为00,调整文字的样式,对齐方式,以及text的位置到合适的设置,然后将这个image修改命名为gird,在gird里添加一个button组件,实现点击道具物品显示该道具描述,然后将gird拖拽到_prefabs文件夹中,删除所有的image,这样之后每新增一个gird,都会完美匹配到每一个格子里了。图5.3.3.2-GirdLayoutGroup数据设置在bag下新建一个button,修改命名为use,点击实现使用道具的功能,在button下将样式图片拖拽到button 的sour

47、ce image栏里,然后还是点击 set native size按钮还原图片原始大小,修改button的对齐方式为居中对齐,然后调整到合适的位置,修改button的text文字为使用。图5.3.3.3-道具UI设置(2)为背包系统创建数据库在这里用ScriptableObject实现存储数据,新建一个文件夹命名为inventory,在inventory文件夹里面创建一个新的文件夹并且新增一个一个脚本命名为Prop,用来存储物品的所有属性信息,如道具的名字、图片,数量。将脚本里的MonoBehaviour修改为ScriptablObject,将Prop里的start方法和update方法删掉,将道具属性添加到代码当中,具体实现代码如下:图5.3.3.4-Prop代码在Inventory文件夹下新建一个prop文件夹,用来存放所有的道具信息文件,在该文件夹下鼠标右键新增inventory下的New Prop,修改命名为coin,将coin的图片素材拖拽到Prop Image参数栏中,在Prop

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 期刊短文 > 信息管理

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁