多轮审查和修复
This commit is contained in:
41
Assets/Scripts/Dialogue/DialogueSequenceSO.cs
Normal file
41
Assets/Scripts/Dialogue/DialogueSequenceSO.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user