using UnityEngine; using Player.Wallet; /* 静态类,用于全局访问和管理游戏中的各类核心管理器 */ public static class ComponentsManager { // 钱包管理器存储 private static Storage _wallet = new Storage(); // 主菜单UI管理器存储 private static Storage _menuUI = new Storage(); // 玩家数据管理器存储 private static Storage _playerData = new Storage(); // 游戏主UI管理器存储 private static Storage _gameUI = new Storage(); // 关卡管理器存储 private static Storage _stagesManager = new Storage(); // 玩家军队管理器存储 private static Storage _playerArmyManager = new Storage(); // 战斗管理器存储 private static Storage _battleManager = new Storage(); // 摄像机控制脚本存储 private static Storage _cameraScript = new Storage(); // 升级UI管理器存储 private static Storage _upgradeUI = new Storage(); // 教程引导管理器存储 private static Storage _tutorial = new Storage(); // 全局访问:玩家钱包 public static Wallet PlayerWallet => _wallet.GetItem(); // 全局访问:主菜单UI public static MenuUI MenuUI => _menuUI.GetItem(); // 全局访问:玩家数据 public static PlayerData PlayerData => _playerData.GetItem(); // 全局访问:游戏主UI public static GameUI GameUI => _gameUI.GetItem(); // 全局访问:关卡管理器 public static StagesManager StagesManager => _stagesManager.GetItem(); // 全局访问:玩家军队管理器 public static PlayerArmyManager PlayerArmyManager => _playerArmyManager.GetItem(); // 全局访问:战斗管理器 public static BattleManager BattleManager => _battleManager.GetItem(); // 全局访问:摄像机控制脚本 public static CameraScript CameraScript => _cameraScript.GetItem(); // 全局访问:升级UI public static UpgradeUI UpgradeUI => _upgradeUI.GetItem(); // 全局访问:教程引导 public static Tutorial Tutorial => _tutorial.GetItem(); /// /// 泛型存储类,用于延迟查找和缓存各类管理器对象 /// private class Storage where T : Object { // 缓存的管理器对象 private T _item; /// /// 获取管理器对象,若未缓存则自动查找并缓存 /// /// 类型为T的管理器对象 public T GetItem() { if (_item == null) { _item = Object.FindObjectOfType(); } return _item; } } }