| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259 | using Core.AssetLoadTool.Asset;using Core.Audio;using Core.Language;using Excel2Json;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 GameLogic.Hero;using GameLogic.NetworkClient;using GameLogic.Player;using GameUI;using NetCore.Protocol.MemoryPack;#if UNITY_EDITORusing UnityEditor;#endifusing UnityEngine;using UnityEngine.UI;using Utility.CTween;using Utility.UITool;public class GameApplction : IGameStart{    public static GameApplction gameApplction;    public GameRuntimeConfig gameRuntimeConfig;    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)    {        gameApplction = this;        Debug.Log("开始游戏逻辑");        Crasheye.SetIsBetaVersion( true);        Crasheye.SendScriptException("测试错误", "测试错误","ZH");        // UnityEngine.Screen.SetResolution(Screen.width);        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();        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);#if !UNITY_EDITOR        AssetBundleLoadManager.Instance.AddBundleTask("fb010shader", delegate(BundleLoadBasic basic, object o)        {            if (basic.currBundle != null)            {                basic.currBundle.LoadAllAssets<Shader>();                Shader.WarmupAllShadersWait();            }        }, null);#endif        gameStartUIPanel.ShowMassge("loadConfig");        gameStartUIPanel.SetSlider(0.25f);        AssetHandle gameRuntimeAssetHandle=   await  AssetBundleLoadManager.Instance.LoadAssetAsyncTask<GameRuntimeConfig>("GameRuntimeConfig.asset");        gameRuntimeConfig = gameRuntimeAssetHandle.AssetObject<GameRuntimeConfig>();        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 AudioManager.Instance.InitMainAudio();        await UIManager.Instance.InitUI();        CustomTweenManager.Init();        RedDotManager.Instance.Init();        // await GameNetworkClient.Instance.Connect("127.0.0.1", 1000);        await Login();    }    private async CTask Login()    {        // MemoryResponse memoryResponse = await GameNetworkSendAssemble.SendLogin("123", "123");        // if (memoryResponse == null)        // {        //     LogTool.Error("登陆失败");        //     return;        // }        EventManager.Instance.RemoveEventListener(CustomEventType.DialoguePanelOpen, DialoguePanelOpenEvent);        EventManager.Instance.AddEventListener(CustomEventType.DialoguePanelOpen, DialoguePanelOpenEvent);        UIManager.Instance.Canvas.gameObject.SetActive(true);        if (PlayerGuideManager.Instance.GuideIsCanDo(1))        {            await MarskPanel.OpenPanel(255);        }        PlayerManager.Instance.Init();        ShopManger.Instance.CustomInit();        EventSystemManager.Instance.CustomInit();        await ShowItemMoveToTargetPanel.OpenShowItemMoveToTargetPanel();        PlayerManager.Instance.AddSentimentData(1);        foreach (var playerDataAllSkillData in AccountFileInfo.Instance.playerData.AllSkillDatas)        {            SkillInfo skillInfo = new SkillInfo(playerDataAllSkillData);            skillInfo.index = playerDataAllSkillData.useIndex;            PlayerManager.Instance.GongFaControl.AddSkillInfo(skillInfo);        }        foreach (var playerDataAllSkillData in AccountFileInfo.Instance.playerData.AllFaBaoDatas)        {            FaBaoInfo faBaoInfo = new FaBaoInfo(playerDataAllSkillData);            PlayerManager.Instance.FaBaoControl.AddFaBao(faBaoInfo);        }        // for (int i = 1; i < 4; i++)        // {        //     PlayerManager.Instance.FaBaoControl.FightFaBao[i] = PlayerManager.Instance.FaBaoControl.myAllFaBao[i];        // }        // PlayerManager.Instance.InitTestHero();        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;            TestCombatHeroConfig.TestHeroInfoConfig testHeroInfoConfig = testCombatHeroConfig.myHeroInfo[0];            PlayerManager.Instance.AddTestHeroInfo(testHeroInfoConfig);        }#endif        // startCombatInfo.levelBattleId = AccountFileInfo.Instance.playerData.levelBattle;        CombatDrive.Instance.AddCombatController(new CombatController());        gameStartUIPanel.ShowMassge("loadCombat");        gameStartUIPanel.SetSlider(0.95f);        var eventList = EventSystemManager.Instance.AddEvent(10001);        if (eventList != null)        {            AccountFileInfo.Instance.playerData.eventList.Add(eventList);            AccountFileInfo.Instance.SavePlayerData();        }        EventSystemManager.Instance.UpdateZuizhongEventData();        // if (PlayerGuideManager.Instance.GuideIsCanDo(1))        // {        //     await MarskPanel.OpenPanel(255);        // }        await CombatDrive.Instance.StartCombat(startCombatInfo);        PlayerManager.Instance.GongFaControl.SaveUseSkill();        PlayerManager.Instance.GongFaControl.SetTaoismSkillIndex(AccountFileInfo.Instance.playerData.heroData            .TaoismSkillId);        if (startCombatInfo.CombatType != CombatType.TestCombat)        {            MainPanel mainPanel = await MainPanel.OpenPanel();            if (!AccountFileInfo.Instance.playerData.isTiggerPlot && PlayerGuideManager.Instance.GuideIsCanDo(1))            {                mainPanel.GObjectPoolInterface.SetActive(false);                AppBarPanel.ClosePanel();            }        }        gameStartUIPanel.ShowMassge("loadFinish");        gameStartUIPanel.SetSlider(1f);        XinShouCombat();    }    private void DialoguePanelOpenEvent(IEventData e)    {        MarskPanel.ClosePanel();    }    public async void XinShouCombat()    {        // MarskPanel.ClosePanel();        if (PlayerGuideManager.Instance.GuideIsCanDo(1))        {            AccountFileInfo.EventList eventList2 = EventSystemManager.Instance.AddEvent(9999);            await EventSystemManager.Instance.TriggerEvent(eventList2,                uiOpenOverCallBack: () => { });            CTask cTask = CTask.Create();            await CombatDrive.Instance.LoadLevelBattleCombat(10001, false, -1,                delegate(bool isWin)                {                    LogTool.Log("战斗完成" + isWin);                    cTask.SetResult();                });            await cTask;            AccountFileInfo.EventList eventList1 = EventSystemManager.Instance.AddEvent(10000);            MainPanel mainPanel = UIManager.Instance.GetComponent<MainPanel>();            mainPanel.GObjectPoolInterface.SetActive(true);            await EventSystemManager.Instance.TriggerEvent(eventList1);            AccountFileInfo.Instance.SavePlayerData();            AccountFileInfo.Instance.playerData.isTiggerPlot = true;            // AlterNamePanel.OpenPanel();            // PlayerGuideManager.Instance.NextGuide();            mainPanel.GetFocus();        }        else        {            MarskPanel.ClosePanel();        }    }}
 |