using System.Collections.Generic; using Sirenix.OdinInspector; using UnityEngine; namespace SLSUtilities.Narrative { [CreateAssetMenu(fileName = "New Character Data", menuName = "SLSUtilities/Story System/Character Data")] public class CharacterData : SerializedScriptableObject { [TitleGroup("角色档案", "Yarn Spinner 角色视觉与差分配置", Alignment = TitleAlignments.Centered)] [BoxGroup("角色档案/基础信息 (Basic Info)")] [LabelText("角色名称 (Yarn 识别码)")] [Tooltip("在 C# 逻辑与场景注册中使用的标准唯一英文 ID(例如:'Player' 或 'Guide')。")] public string nameKey; [BoxGroup("角色档案/基础信息 (Basic Info)")] [LabelText("显示名称 (Display Name)")] [Tooltip("在 Yarn 对话文本中显示的本地化名称(例如中文:'引导者')。用于将文本说话人匹配到标准英文 ID。")] public List alias; [BoxGroup("角色档案/立绘差分 (Portraits)", centerLabel: true)] [LabelText("默认立绘 (Default Portrait)")] [PreviewField(70, ObjectFieldAlignment.Left)] [Tooltip("当 Yarn 台词没有指定 #mood 标签时,显示的默认角色立绘。")] public Sprite defaultPortrait; [BoxGroup("角色档案/立绘差分 (Portraits)")] [LabelText("表情差分库 (Mood Expressions)")] [DictionaryDrawerSettings(KeyLabel = "表情标签 (如 Happy, Sad)", ValueLabel = "对应的立绘 (Sprite)", DisplayMode = DictionaryDisplayOptions.ExpandedFoldout)] [Tooltip("在此配置各种表情对应的立绘。在 Yarn 中使用 #mood:标签名 来触发。")] public Dictionary expressions = new Dictionary(); } }