Unity 2D独立开发手记(七):多功能对话系统:分支、选项、提交&获取道具

由上一篇(六)的对话系统改进而来,这个带分支的对话系统呢,实际上已经实现了挺久了,不过没时间来记录,就先来预留个文章位置吧。

先放几个效果图,有时间再来填坑吧。

这是编辑界面:

这是游戏中的效果:

提前预览请移步:Zetan的Github

2019年8月11日更新:

重构了对话系统,将“分支”重新定义为“选项“,以前的传统分支则变成了选项的一种。

设计方向:每句话都可以有选项,功能分为:说一句话、说一段话(多句话)、选择项、提交或者取得道具。

展示如下:

①当选项功能(类型)为”一句分支“时,信息编辑界面如下:

其中:“返回至原对话”表示,当完成这个分支后,返回进入这个分支前的对话,序号则是对话句子的序号,从0开始,-1表示在返回时返回到当前句,例如上面是返回到“每天都……”这一句。也可以往后跳几句,例如对话一共有5句,产生该分支的句子的序号是2,分支结束后,你可以向前跳回第0句,也可以向后跳到第4句。

i.不带返回时,游戏中的效果:

上面在设定的句子下方出现了选项。

点击选项后,进入分支,此时只有一句话,分支结束。

ii.带返回时,游戏中的效果:

当分支结束后,出现一个“继续”选项,此时点击该选项,可以返回到“每天都……”的那一句。

②当选项功能为“一段分支”时,编辑界面如下:

适用场景:玩家通过多个对话选项向万事通NPC了解想要知道的情报,等等。

此时可以将其它的对话asset资源填入“分支对话”,以实现更丰富的分支。“指定句子序号”是指在进入该分支时,从该分支的第几句开始说话,-1和0都表示从头开始,这里设计失误,实际上不需要用到-1。返回至原对话的功能同上。

带返回时,游戏中的效果如下:

(PS:相关对话分支的asset如下:

点击上上面的“分支一”选项后将进入分支:

上面是分支的第一句。

上面是分支的第二句。

上面是分支的最后一句,同样,点继续将返回“每天都……”那一句。

③当选项功能为“选择项”时,编辑界面如下:

适用场景:进行任务时和NPC对话选取正确选项以完成任务目标,等等。

其中,正确选项序号,当且仅当选项多余一个且所有选项都为选择项时才显示,如上和下所示:

为了逻辑更简单易懂,暂时不实现多重正确选项,所以这种情况类似于单选题。而当只有一个选择项时,根本就没有选择性,没必要指定正确选项,也不会有选择错误,所以后面的“错误时说的话”也不就不会有了。

选择项当前版本可以和其它选项共存,但是功能将退化到和“一句分支”一样,失去了实际意义。

选择项还有“有话说”复选框,表示选完选项后说额外的一句话。

游戏中的效果:

当选择“测试项2”时,是错误的选项,效果如下:

因为该选项没有额外的句子,直接显示“选择错误时说的句子”。再点继续后,将返回“今年的……”那一句,这里返回序号不能自定义,要不然逻辑就乱了。

而当选择“测试项1”时,是正确的选项,效果如下:

因为该选项有额外的句子“你选对了。”,则说了这一句额外的句子,点继续后,将进入主对话(我把产生选项的对话称为“主对话”)的下一个句子,即上面所示的”每天都……“:

为了实现这种选择正确后才能进入主对话下一句的功能,选择项不能出现在对话的最后一句,因为已经没有下一句了,如果可以出现在最后一句,则与选择项的功能相互矛盾,这种情况其实是”一句分支“或”一段分支“,无需设计选择项。

④当选项功能为“提交、取得道具”时,编辑界面如下:

适用场景:提交某些道具换取某些另外的道具,进行任务时向NPC提交某些道具来完成任务目标,等等。

其中,“只在任务时显示”表示当进行某个任务时,才出现这个选项,可以编辑如下:

“提交时的对话”则与选择项的差不多,但是在这里是必填项。

游戏中效果如下:

当玩家未持有足够数量“破旧的刀”时,点击该选项时对话框不会有任何反应。

④当选项功能为“取得道具”时,编辑界面如下:

适用场景:向NPC获取无法通过其它途径产出的任务专用道具,等等。

其中,“只在任务时显示”效果同上;“只在未持有时显示”表示,当玩家未拥有可获得的道具时,才显示该选项。“只在任务时显示”基于“只在未持有时显示”,想象一下下面的场景一:玩家在未接取相关任务的的情况下,背包中也没有相关任务道具,而在对话时出现“领取任务道具”的的选项,出于好奇就点了,并获得了一个任务道具,玩家不知道这个道具有什么用,直接扔了。场景二:玩家接取了任务,并通过对话选项“领取任务道具”获得了一个任务道具,此时玩家已经有了任务道具,而选项还在,玩家出于好奇又多领取了几个,最后发现该任务道具在提交任务时只上交一个,剩下的既不能堆叠也不能丢弃,白白浪费背包空间。通过上面两个场景,可以看出为什么需要这样设计了。

我都为自己的进度感到羞耻(*/㉨\*)捂脸,这就是最近这两个月做的内容中的一部分了,当然这里也只是展示成果,提前预览源码还请移步GitHub(连接见上文)。

  • 5
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫需要

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值