多轮审查和修复

This commit is contained in:
2026-05-12 15:34:08 +08:00
parent f55d2a57c3
commit ebbbb7332e
805 changed files with 838724 additions and 1905 deletions

View File

@@ -0,0 +1,41 @@
using UnityEngine;
namespace BaseGames.Dialogue
{
/// <summary>
/// 对话行结构(架构 14_NarrativeModule §3
/// 每行包含说话人、文本(本地化 Key和可选的语音片段。
/// </summary>
[System.Serializable]
public struct DialogueLine
{
public string speakerNameKey; // 本地化 key如 "NPC_Elder_Name"
[TextArea(2, 5)]
public string textKey; // 本地化文本 key如 "DLG_Elder_001"
public Sprite portraitSprite; // 可选说话人头像
public AudioClip voiceClip; // 可选语音
[Min(0.01f)]
public float typewriterDelay; // 每字符延迟0 = 使用默认 0.03f
}
/// <summary>
/// 对话序列 SO架构 14_NarrativeModule §3
/// 一个 NPC 对话场合对应一个序列,由若干 DialogueLine 组成。
/// 资产路径: Assets/ScriptableObjects/Dialogue/DLG_{NpcId}_{Context}.asset
/// </summary>
[CreateAssetMenu(menuName = "Dialogue/DialogueSequence")]
public class DialogueSequenceSO : ScriptableObject
{
public string sequenceId; // 全局唯一,如 "DLG_Elder_Quest_Available"
public DialogueLine[] lines;
/// <summary>条件变体:满足特定世界标志时替换整个序列。</summary>
[System.Serializable]
public struct ConditionalVariant
{
public string conditionFlag; // WorldState flag key
public DialogueSequenceSO sequence;
}
public ConditionalVariant[] variants;
}
}