顺序回放多选
组件新增“顺序回放多选”能力,允许玩家在一个 Choice 节点中勾选多个选项,然后系统将这些选项对应的 TargetNodeID 分支作为一个队列,按对话形式依次播放。
蓝图 API:
SubmitChoiceSequential(SelectedChoiceIDs, bTriggerChoiceEvents=true, bOrderBySelected=true)SelectedChoiceIDs:玩家勾选的 Choice GUID 数组(若bOrderBySelected=true将保留勾选顺序)bTriggerChoiceEvents:是否广播每个 choice 的OnSelectedEventbOrderBySelected:true 按玩家勾选顺序;false 按作者在FDialogueChoiceNode中的顺序
行为说明:
系统从所选 choice 的
TargetNodeID构建内部顺序队列,并将每个分支作为完整对话播放。保留
DisplayDelay/AutoAdvanceDelay行为,毫秒级性能开销。顺序模式下,Text 节点若
AutoAdvanceDelay == 0将自动推进,避免停滞。若分支内遇到下一个 Choice 节点,视为该分支结束(默认策略:停止于下一个 Choice),系统立即切换到队列的下一个已选分支,确保“已选分支必定全部执行”。
若某个分支的
TargetNodeID无效或条件不满足,会跳过该分支并继续后续分支。
事件:
OnDialogueChoiceSelected:顺序回放开始前,广播一次最终有效的选择集合OnDialogueNodeExecuted:每个 Text 节点触发,提供SpeakerInfoOnDialogueEventTriggered:对话节点/choice 的事件OnDialogueStarted/OnDialogueEnded:顺序回放会按常规流程触发开始/结束事件
注意与最佳实践:
如在编辑器中重新生成 Choice 的 GUID 或重连
TargetNodeID,UI 必须传入最新的 GUID。设计分支时,建议将“后续需要玩家再次决策”的 Choice 放在分支更深层;顺序模式的默认策略会在遇到下一个 Choice 时结束当前分支,以保证所有已选分支都会被播放。
如需不同策略(例如自动选择第一个可用选项、按标签选择、跳过所有后续 Choice),可在组件中扩展策略枚举;默认策略优先“可预期性与鲁棒性”。
Last updated