38 lines
1.3 KiB
C#
38 lines
1.3 KiB
C#
using AibisDream;
|
|
using UnityEngine;
|
|
using Yarn.Unity;
|
|
|
|
public class DialogueInterrupter : MonoBehaviour
|
|
{
|
|
//public DialogueRunner originalDialogueRunner; // 原始 DialogueRunner
|
|
public DialogueRunner newDialogueRunnerPrefab; // 新的 DialogueRunner 预制体
|
|
public YarnProject originalProject; // 原始 YarnProject
|
|
public YarnProject newProject; // 新的 YarnProject
|
|
|
|
// 触发新对话并启动新的 DialogueRunner
|
|
public void StartNewDialogue(string nodeName)
|
|
{
|
|
// 创建新的 DialogueRunner 实例
|
|
DialogueRunner newDialogueRunner = Instantiate(newDialogueRunnerPrefab);
|
|
|
|
// 将新的 YarnProject 分配给新的 DialogueRunner
|
|
newDialogueRunner.yarnProject = newProject;
|
|
|
|
// 开始新的对话
|
|
newDialogueRunner.StartDialogue(nodeName);
|
|
|
|
// 可选:关闭原始对话或保持原对话继续运行
|
|
//originalDialogueRunner.Stop();
|
|
}
|
|
|
|
// 恢复原始对话
|
|
// public void RestoreOriginalDialogue()
|
|
// {
|
|
// // 恢复原始 DialogueRunner
|
|
// originalDialogueRunner.StartDialogue("StartNode");
|
|
|
|
// // 你可以选择关闭新对话的 DialogueRunner,或保留它继续运行
|
|
// Destroy(newDialogueRunnerPrefab.gameObject); // 删除新对话的 Runner 实例
|
|
// }
|
|
}
|