GameApplction.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. using Core.AssetLoadTool.Asset;
  2. using Core.Language;
  3. using Fort23.Core;
  4. using Fort23.Mono;
  5. using Fort23.UTool;
  6. using GameLogic.Combat;
  7. using GameLogic.Combat.CombatTool;
  8. using GameLogic.Combat.CombatType;
  9. #if UNITY_EDITOR
  10. using UnityEditor;
  11. #endif
  12. using UnityEngine;
  13. using UnityEngine.UI;
  14. using Utility.CTween;
  15. using Utility.UITool;
  16. public class GameApplction : MonoBehaviour
  17. {
  18. public ShaderVariantCollection ShaderVariantCollection;
  19. public BundleLoadType BundleLoadType;
  20. public string h5Url;
  21. private Entity _root;
  22. private Entity _scene;
  23. public bool isTest;
  24. public int levelBattleId;
  25. private async void Start()
  26. {
  27. // ShaderVariantCollection.WarmUp();
  28. await InitGameApplication();
  29. Debug.Log("初始化完成");
  30. }
  31. private async CTask InitGameApplication()
  32. {
  33. _scene = new Scene();
  34. _root = new Entity();
  35. _root.Parent = _scene;
  36. _root.AddComponent<TimerComponent>();
  37. _root.AddComponent<CoroutineLockComponent>();
  38. AssetBundleLoadManager.Instance.BundleLoadType = BundleLoadType;
  39. AssetBundleLoadManager.Instance.h5Url = h5Url;
  40. await AssetBundleLoadManager.Instance.InitAssetsManager(null);
  41. await ConfigComponent.Instance.Preload();
  42. await AnimationCurveManager.Instance.Init();
  43. UGUIPackLoad uguiPackLoad = new UGUIPackLoad();
  44. UGUIPackManager.Instance.SetIUGUIPackLoad(uguiPackLoad);
  45. await uguiPackLoad.InitPack();
  46. await LanguageManager.Instance.InitManager();
  47. _root.AddComponent<StaticUpdater>();
  48. _root.AddComponent<UIManager, Transform>(transform);
  49. await UIManager.Instance.InitUI();
  50. CustomTweenManager.Init();
  51. PlayerManager.Instance.Init();
  52. // PlayerManager.Instance.InitTestHero();
  53. //主UI加载
  54. MainSceneController.Instance.Init();
  55. StartCombatInfo startCombatInfo = new StartCombatInfo();
  56. startCombatInfo.CombatType = isTest ? CombatType.TestCombat : CombatType.LevelBattle;
  57. startCombatInfo.levelBattleId = levelBattleId;
  58. CombatDrive.Instance.AddCombatController(new CombatController());
  59. await CombatDrive.Instance.StartCombat(startCombatInfo);
  60. }
  61. public void Update()
  62. {
  63. #if UNITY_EDITOR
  64. if (EditorApplication.isPaused)
  65. {
  66. return;
  67. }
  68. #endif
  69. EventSystem.Instance.Update();
  70. AssetBundleLoadManager.Instance.UpdateBundle();
  71. TimeHelper.clientFrame = TimeHelper.ClientFrame() + (long)(Time.deltaTime * 1000);
  72. }
  73. public void LateUpdate()
  74. {
  75. EventSystem.Instance.LateUpdate();
  76. }
  77. }