1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- using Core.AssetLoadTool.Asset;
- using Core.Language;
- using Fort23.Core;
- using Fort23.Mono;
- using Fort23.Mono.UpdateAsset;
- using Fort23.UTool;
- using GameLogic.Combat;
- using GameLogic.Combat.CombatTool;
- using GameLogic.Combat.CombatType;
- using GameUI;
- #if UNITY_EDITOR
- using UnityEditor;
- #endif
- using UnityEngine;
- using UnityEngine.UI;
- using Utility.CTween;
- using Utility.UITool;
- public class GameApplction : IGameStart
- {
- public ShaderVariantCollection ShaderVariantCollection;
- public BundleLoadType BundleLoadType;
- public string h5Url;
- private Entity _root;
- private Entity _scene;
- public bool isTest;
- public int levelBattleId = 1;
- private GameStartUIPanel gameStartUIPanel;
- public async void StartGame(LoadType LoadType, string h5Url, GameStartUIPanel gameStartUIPanel,
- System.Action LoadFinish)
- {
- GameUpdateAsset.Instance.Init(h5Url);
- this.gameStartUIPanel = gameStartUIPanel;
- gameStartUIPanel.ShowMassge("开始加载资源");
- gameStartUIPanel.SetSlider(0);
- this.h5Url = h5Url;
- BundleLoadType = (BundleLoadType)LoadType;
- GameObject gameObject = new GameObject("app");
- gameObject.AddComponent<GameApplctionMono>();
- await InitGameApplication();
- LoadFinish?.Invoke();
- UIManager.Instance.Canvas.gameObject.SetActive(true);
- Debug.Log("初始化完成");
- }
- private async CTask InitGameApplication()
- {
- _scene = new Scene();
- _root = new Entity();
- _root.Parent = _scene;
- _root.AddComponent<TimerComponent>();
- _root.AddComponent<CoroutineLockComponent>();
- gameStartUIPanel.ShowMassge("loadBundle");
- gameStartUIPanel.SetSlider(0.15f);
- AssetBundleLoadManager.Instance.BundleLoadType = BundleLoadType;
- AssetBundleLoadManager.Instance.h5Url = h5Url;
- await AssetBundleLoadManager.Instance.InitAssetsManager(null);
- gameStartUIPanel.ShowMassge("loadConfig");
- gameStartUIPanel.SetSlider(0.25f);
- await ConfigComponent.Instance.Preload();
- await AnimationCurveManager.Instance.Init();
- UGUIPackLoad uguiPackLoad = new UGUIPackLoad();
- UGUIPackManager.Instance.SetIUGUIPackLoad(uguiPackLoad);
- await uguiPackLoad.InitPack();
- gameStartUIPanel.ShowMassge("loadLanguage");
- gameStartUIPanel.SetSlider(0.45f);
- await LanguageManager.Instance.InitManager();
- _root.AddComponent<StaticUpdater>();
- _root.AddComponent<UIManager, Transform>(null);
- gameStartUIPanel.ShowMassge("loadUI");
- gameStartUIPanel.SetSlider(0.55f);
- await UIManager.Instance.InitUI();
- CustomTweenManager.Init();
- PlayerManager.Instance.Init();
- // PlayerManager.Instance.InitTestHero();
- //主UI加载
- MainSceneController.Instance.Init();
- await CombatDrive.Instance.Init();
- StartCombatInfo startCombatInfo = new StartCombatInfo();
- startCombatInfo.CombatType = isTest ? CombatType.TestCombat : CombatType.LevelBattle;
- startCombatInfo.levelBattleId = levelBattleId;
- CombatDrive.Instance.AddCombatController(new CombatController());
- gameStartUIPanel.ShowMassge("loadCombat");
- gameStartUIPanel.SetSlider(0.95f);
- await CombatDrive.Instance.StartCombat(startCombatInfo);
- gameStartUIPanel.ShowMassge("loadFinish");
- gameStartUIPanel.SetSlider(1f);
- }
- }
|