| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 | 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 GameLogic.CombatScenesTool;using GameUI;#if UNITY_EDITORusing UnityEditor;#endifusing 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 = CombatType.LevelBattle;#if UNITY_EDITOR        TestCombatHeroConfig testCombatHeroConfig = GameObject.FindObjectOfType<TestCombatHeroConfig>();        if (testCombatHeroConfig != null)        {            startCombatInfo.CombatType = CombatType.TestCombat;        }#endif        startCombatInfo.levelBattleId = AccountFileInfo.Instance.playerData.levelBattle;        CombatDrive.Instance.AddCombatController(new CombatController());        gameStartUIPanel.ShowMassge("loadCombat");        gameStartUIPanel.SetSlider(0.95f);        await CombatDrive.Instance.StartCombat(startCombatInfo);        gameStartUIPanel.ShowMassge("loadFinish");        gameStartUIPanel.SetSlider(1f);    }}
 |