using UnityEngine; namespace BaseGames.Equipment { /// /// 护符目录 SO。 /// 全局唯一资产(Assets/Data/Equipment/CharmCatalog.asset), /// 通过 charmId 查找 CharmSO 引用。 /// 由 EquipmentManager 在 AddToCollection / OnLoad 时查询。 /// [CreateAssetMenu(menuName = "BaseGames/Equipment/CharmCatalog")] public class CharmCatalogSO : ScriptableObject { [SerializeField] private CharmSO[] _charms; /// 按 charmId 查找护符,找不到返回 null。 public CharmSO Find(string charmId) { if (_charms == null || string.IsNullOrEmpty(charmId)) return null; foreach (var charm in _charms) if (charm != null && charm.charmId == charmId) return charm; return null; } } }