using UnityEngine; namespace BaseGames.Progression { public enum AchievementType { Story, Collection, Challenge, Hidden } public enum AchievementTier { Bronze, Silver, Gold } /// /// 成就数据 ScriptableObject(架构 16_SupportingModules §2.3)。 /// 包含显示信息、类型/等级分类、触发条件列表及奖励配置。 /// [CreateAssetMenu(menuName = "BaseGames/Achievement/Achievement", fileName = "ACH_")] public class AchievementSO : ScriptableObject { [Header("标识")] [Tooltip("平台成就唯一标识符(与 Steam/平台后端同步)")] public string achievementId; [Header("显示")] [Tooltip("成就显示名称")] public string displayName; [TextArea(2, 4)] [Tooltip("成就描述(解锁后展示)")] public string description; [TextArea(2, 4)] [Tooltip("隐藏成就未解锁时展示的描述,留空则显示 ???")] public string hiddenDescription; [Tooltip("成就图标(解锁后)")] public Sprite icon; [Tooltip("隐藏成就未解锁时的占位图标")] public Sprite hiddenIcon; [Header("分类")] public AchievementType type = AchievementType.Story; public AchievementTier tier = AchievementTier.Bronze; [Header("触发条件")] [Tooltip("所有条件同时满足时触发解锁;留空则仅通过代码直接解锁")] public AchievementCondition[] conditions; [Header("奖励")] [Tooltip("解锁此成就是否同时授予凹槽(Notch)")] public bool grantsNotch; } }