2021-05-26 unity学习笔记(22)之任务系统 最近在弄一个任务系统,先说一说自己的思路:
接一个任务,而一个任务可能有多个环节,比如点击某位NPC后,对话并开启任务,
这位NPC可能需要主角去找另一位NPC交谈,然后去杀掉另一位NPC,然后去收集某些物品,最后才回去找他。
那么这样一个任务就称其为父级任务,而该任务下的各个环节就成为子级任务,
可以看出子级任务是一环扣一环的,直到所有子级任务都完成后,父级任务才算完成。
根据以上思路,本人弄出了以下效果的任务系统:
上面是主线和支线的效果图,其实两者大体上都差不多,只是在UI部分有些许差别,比如主线和支线需要分开显示,主线只有一个,而支线有多个,支线每多一个,都要在任务面板中显示出来,而完成了之后就能删除。
然后来说一说使用方法:
一、在场景中按照以下层级关系,搭建任务系统,增加一个主线或一个支线任务,就创建一个空物体,然后在该空物体上挂载主线或支线任务的脚本。
文章图片
二、挂载了主线或支线任务的脚本后,进行任务编辑,首先是QuestStartObj,就是任务触发者,就是谁派给主角这个任务;
然后是下面的大小,就是指这个任务一个有多少环,但是要除去元素0,因为元素0是父级任务,所以图中的任务一共有三环;看具体的子级任务,最关键的两个数据是QuestDemands和QuestTargetDatas,QuestDemands就是任务需求,完成了需求就是完成这一环任务,同时开启下一环任务,QuestTargetDatas就是任务目标的数据,比如需求是找NPC,那么要找多少个NPC?NPC的名字呢?这些都要进行设置。而下面的奖励还没有做,所以就不说了。
文章图片
三、完成设置后,只要确保场景中有任务触发者,有任务目标,那么整个任务系统就会运行起来,不需要在代码上进行设置,方便了很多,而且如果要增加需求,也不用修改原来的代码,只要继承IQuestDemands接口就行了,然后写具体需求就行了。
【2021-05-26 unity学习笔记(22)之任务系统】最后是类图:
文章图片
推荐阅读
- CB国赛--FY的蓝桥
- 算法与数据结构的碰撞经典汇总|四平方和 剪枝+枚举 【蓝桥真题】(c++)
- 框架|Hadoop 深入浅出 ---- 入门 (1)
- 蓝桥杯|蓝桥杯备战 每日训练3道 真题解析
- 笔记|Real-SR超分辨网络
- 笔记|栈和队列常见oj题
- 笔记|UA到底是什么
- 笔记|如何在Windows11安装安卓子系统()
- 笔记|C语言数据结构——二叉树的顺序存储和二叉树的遍历