using UnityEngine; using BaseGames.Player; namespace BaseGames.Progression { /// /// 区域定义 SO(架构 09_ProgressionModule §11)。 /// 集中管理区域元数据:解锁条件、关联场景、地图展示数据。 /// 资产路径: Assets/ScriptableObjects/Progression/Regions/Region_{RegionId}.asset /// [CreateAssetMenu(menuName = "BaseGames/Progression/RegionDefinition")] public class RegionDefinitionSO : ScriptableObject { [Header("Identity")] public string regionId; // 如 "Cave"(与 AudioZone.regionId 一致) public string displayName; // 如 "腐蚀洞穴" [Header("Map")] public Color mapColor; public Sprite mapIconSprite; // P1:地图图标 [Header("解锁条件")] [Tooltip("击败指定 Boss 后解锁;留空 = 无条件")] public string requiredBossDefeated; [Tooltip("需持有指定能力;None = 无要求")] public AbilityType requiredAbility; [Header("关联房间")] public string[] roomSceneNames; // 该区域包含的所有场景名 public string bossSceneName; // Boss 房间场景名 public string entrySceneName; // 从外部进入该区域的第一个房间 } }