常见问题(FAQ)

无法启动对话?

  • 确认在 StartDialogue 之前已调用 LoadDialogueDataAsset

  • 检查数据资产中是否存在 SequenceName

  • 确保 StartNodeID 有效且匹配现有节点 ID

  • 确认组件已添加到 Actor


OnDialogueNodeExecuted 未调用?

  • 首节点必须是文本类型;选择/事件/延时节点不会触发此事件

  • 对于其他节点类型,同时绑定 OnDialogueChoiceNodeExecutedOnDialogueEventTriggered

  • 检查 DisplayDelay 设置(0 = 立即,>0 = 延时)

  • 事件绑定必须在调用 StartDialogue 之前完成

  • 验证 StartNodeID 完全匹配节点的 NodeID(复制粘贴,不要生成)

  • 确保节点 Conditions 为空或所有条件评估为 true

  • 组件和 Actor 必须可 Tick(未暂停/禁用)

  • 验证事件签名匹配委托:Node(FDialogueNode)SpeakerInfo(FSpeakerInfo)NodeID(FGuid)


条件不生效?

  • 变量名区分大小写

  • 值类型必须匹配 ValueType 设置

  • 比较值必须是字符串表示(例如:布尔值:"true""false"

  • 数组中的所有条件必须通过(AND 逻辑)


自动推进不工作?

  • 检查文本节点上的 AutoAdvanceDelay > 0

  • 如果 AutoAdvanceDelay = 0,需要手动 AdvanceDialogue()

  • 验证组件正在 Tick


手动推进无效?

  • AdvanceDialogue() 仅在以下情况下工作:

    • 当前节点是文本类型

    • AutoAdvanceDelay = 0

    • 节点执行回调已完成

  • 其他节点类型自动继续


选择超时未触发?

  • 验证选择节点上的 SelectionTimeout > 0

  • 确保设置了 TimeoutNodeID 且指向有效节点

  • 检查组件是否正在 Tick


💬 支持

如有问题,可来Dicord社区找我!

Last updated