2021-05-26 unity学习笔记(22)之任务系统

2021-05-26 unity学习笔记(22)之任务系统 最近在弄一个任务系统,先说一说自己的思路:
接一个任务,而一个任务可能有多个环节,比如点击某位NPC后,对话并开启任务,
这位NPC可能需要主角去找另一位NPC交谈,然后去杀掉另一位NPC,然后去收集某些物品,最后才回去找他。
那么这样一个任务就称其为父级任务,而该任务下的各个环节就成为子级任务,
可以看出子级任务是一环扣一环的,直到所有子级任务都完成后,父级任务才算完成。

根据以上思路,本人弄出了以下效果的任务系统:


上面是主线和支线的效果图,其实两者大体上都差不多,只是在UI部分有些许差别,比如主线和支线需要分开显示,主线只有一个,而支线有多个,支线每多一个,都要在任务面板中显示出来,而完成了之后就能删除。
然后来说一说使用方法:
一、在场景中按照以下层级关系,搭建任务系统,增加一个主线或一个支线任务,就创建一个空物体,然后在该空物体上挂载主线或支线任务的脚本。
2021-05-26 unity学习笔记(22)之任务系统
文章图片

二、挂载了主线或支线任务的脚本后,进行任务编辑,首先是QuestStartObj,就是任务触发者,就是谁派给主角这个任务;
然后是下面的大小,就是指这个任务一个有多少环,但是要除去元素0,因为元素0是父级任务,所以图中的任务一共有三环;看具体的子级任务,最关键的两个数据是QuestDemands和QuestTargetDatas,QuestDemands就是任务需求,完成了需求就是完成这一环任务,同时开启下一环任务,QuestTargetDatas就是任务目标的数据,比如需求是找NPC,那么要找多少个NPC?NPC的名字呢?这些都要进行设置。而下面的奖励还没有做,所以就不说了。

2021-05-26 unity学习笔记(22)之任务系统
文章图片

三、完成设置后,只要确保场景中有任务触发者,有任务目标,那么整个任务系统就会运行起来,不需要在代码上进行设置,方便了很多,而且如果要增加需求,也不用修改原来的代码,只要继承IQuestDemands接口就行了,然后写具体需求就行了。
【2021-05-26 unity学习笔记(22)之任务系统】最后是类图:2021-05-26 unity学习笔记(22)之任务系统
文章图片

    推荐阅读