ComponentsManager.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using UnityEngine;
  2. using Player.Wallet;
  3. /* Static Class to access game managers */
  4. public static class ComponentsManager
  5. {
  6. private static Storage<Wallet> _wallet = new Storage<Wallet>();
  7. private static Storage<MenuUI> _menuUI = new Storage<MenuUI>();
  8. private static Storage<PlayerData> _playerData = new Storage<PlayerData>();
  9. private static Storage<GameUI> _gameUI = new Storage<GameUI>();
  10. private static Storage<StagesManager> _stagesManager = new Storage<StagesManager>();
  11. private static Storage<PlayerArmyManager> _playerArmyManager = new Storage<PlayerArmyManager>();
  12. private static Storage<BattleManager> _battleManager = new Storage<BattleManager>();
  13. private static Storage<CameraScript> _cameraScript = new Storage<CameraScript>();
  14. private static Storage<UpgradeUI> _upgradeUI = new Storage<UpgradeUI>();
  15. private static Storage<Tutorial> _tutorial = new Storage<Tutorial>();
  16. public static Wallet PlayerWallet => _wallet.GetItem();
  17. public static MenuUI MenuUI => _menuUI.GetItem();
  18. public static PlayerData PlayerData => _playerData.GetItem();
  19. public static GameUI GameUI => _gameUI.GetItem();
  20. public static StagesManager StagesManager => _stagesManager.GetItem();
  21. public static PlayerArmyManager PlayerArmyManager => _playerArmyManager.GetItem();
  22. public static BattleManager BattleManager => _battleManager.GetItem();
  23. public static CameraScript CameraScript => _cameraScript.GetItem();
  24. public static UpgradeUI UpgradeUI => _upgradeUI.GetItem();
  25. public static Tutorial Tutorial => _tutorial.GetItem();
  26. private class Storage<T> where T : Object
  27. {
  28. private T _item;
  29. public T GetItem()
  30. {
  31. if (_item == null)
  32. {
  33. _item = Object.FindObjectOfType<T>();
  34. }
  35. return _item;
  36. }
  37. }
  38. }