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("必须与 Yarn 脚本中使用的角色名称完全一致(例如:'Player' 或 'Merchant')。大小写敏感。")] public string nameKey; [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(); } }