using cfg.CharacterCfg; using Cysharp.Threading.Tasks; using Framework; using Gameplay; using Gameplay.Area; using Gameplay.Guide; using Gameplay.Level; using Gameplay.Level.FightInfo; using PhxhSDK; using UnityEngine; using Constants = Framework.Constants; public partial class TeamManager { private UIWindow _curFightPosterUI; public async void OpenFightPosterUI(uint uid = 0) { // if (GetSingleCharacByUid(uid).Type != SingleTeamCharacterInfo.CharacType.Hero) // { // return; // } if (_curFightPosterUI == null) { // if(uid != 0) // _curFightPosterUI = await UIPosterAndSkillInfoController.Open(uid); // else // _curFightPosterUI = await UIPosterAndSkillInfoController.Open(); // return; if(uid != 0) LevelManager.Instance.SkillInfoOpen(uid); else LevelManager.Instance.SkillInfoOpen(0); } } public void CloseFightPosterUI(bool isRelease = false) { // if (isRelease) // { // UIManager.Instance.CloseWindow(UINameConst.UIFightPoster); // return; // } // if (_curFightPosterUI != null) // { // _curFightPosterUI.HideWindow(); // } LevelManager.Instance.SkillInfoClose(isRelease); //_curFightPosterUI = null; } #region Load /// /// 初始化战斗内UI /// public async UniTask TeamUIInit() { await _Init(); //InputManager.Instance.OnFingerUp += _OnFingerUp; var window = await UIManager.Instance.LoadWindow(UINameConst.UIFightScene, UIManager.ECanvasRoot.Dynamic0); UIManager.Instance.PushWindow(window); window = await UIManager.Instance.LoadWindow(UINameConst.UIFightTarget, UIManager.ECanvasRoot.Dynamic0); UIManager.Instance.PushWindow(window); window = await UIManager.Instance.LoadWindow(UINameConst.UI_StartBtn_CMSBtn); UIManager.Instance.PushWindow(window); window = await UIManager.Instance.LoadWindow(UINameConst.UITeamFight); UIManager.Instance.PushWindow(window); window = await UIManager.Instance.LoadWindow(UINameConst.UIFightClock); UIManager.Instance.PushWindow(window); var battleTeamWindow = await UIFightTeamController.Open(); battleTeamWindow.HideWindow(); var battleTeamCdWindow = await UIFightTeamCDController.Open(); battleTeamCdWindow.HideWindow(); FightTeamManager.SetFightTeamWindow(battleTeamWindow); FightTeamManager.AddFightTeamWindow(battleTeamCdWindow); FightInfoManager.CreateFightInfoWindow(); // window = await UIManager.Instance.LoadWindow(UINameConst.UISKillPut); // UIManager.Instance.PushWindow(window); var skillWindow = await UISkillPutController.Open(); skillWindow.HideWindow(); FightSkillPutManager.Instance.SetSKillPutWindow(skillWindow); var storyWindow = await UIStoryFightMainController.Open(); if (storyWindow != null) { storyWindow.HideWindow(); } AssetManager.Instance.PostPreload(string.Format(UIManager.UI_PREFAB_PATH, UINameConst.UICharacterStateBar)); AssetManager.Instance.PostPreload(string.Format(UIManager.UI_PREFAB_PATH, UINameConst.UIVehicleStateBar)); AssetManager.Instance.PostPreload(string.Format(UIManager.UI_PREFAB_PATH, UINameConst.UIEnemyStateBar)); AssetManager.Instance.PostPreload(string.Format(UIManager.UI_PREFAB_PATH, UINameConst.UICharacterDamage)); //预加载士气值图片 AssetManager.Instance.PostPreload(LevelUIManager.GetMoralePic(true)); AssetManager.Instance.PostPreload(LevelUIManager.GetMoralePic(false)); //预加载数字图片 for (int i = 0; i < 10; i++) { AssetManager.Instance.PostPreload(LevelUIManager.GetNumberImage(i)); } for (int i = 0; i < 7; i++) { AssetManager.Instance.PostPreload(LevelUIManager.GetNumberImgPath(i)); } var teamCharacterIDs = GetCharacterIDs(); var vehicleIDs = GetVehicleIDs(); for (int i = 0; i < teamCharacterIDs.Count; i++) { var uid = teamCharacterIDs[i]; var singleData = m_allCharactersMap[uid]; var cfg = singleData.GetConfigInfo(); var str = CommonUtils.GetCharacterPicPath(cfg.Cfg.RoleID, CommonUtils.ECharacterPicPathType.HeadPic, (int)cfg.SkinID); //CommonUtils.GetDefaultHeadPathByUid((uint)cfg.Cfg.RoleID); var posterStr = CommonUtils.GetCharacterPicPath(cfg.Cfg.RoleID, CommonUtils.ECharacterPicPathType.Poster); AssetManager.Instance.PostPreload(str); AssetManager.Instance.PostPreload(posterStr); } for (int i = 0; i < vehicleIDs.Count; i++) { var uid = vehicleIDs[i]; var singleData = m_allCharactersMap[uid]; AssetManager.Instance.PostPreload(CommonUtils.GetDefaultVehicleHeadPath((uint)singleData.GetVehicleInfo().Cfg.ID)); //singleData.GetVehicleInfo().Cfg.UIHeadPath } //预加载职业图标 for (var i = Ejob.Job_Commander; i < Ejob.Job_Other; i++) { var path = JobHelper.GetJobSpritePathFight(i); AssetManager.Instance.PostPreload(path); } //预加载状态图片 AssetManager.Instance.PostPreload(Constants.UI_RETREATE_STATE); AssetManager.Instance.PostPreload(Constants.UI_SUPPRESS_STATE); AssetManager.Instance.PostPreload(Constants.UI_RETREATE_STATE_MAP); AssetManager.Instance.PostPreload(Constants.UI_SUPPRESS_STATE_MAP); AssetManager.Instance.PostPreload(Constants.UI_INVEHICLE_STATE); //预加载血条Prefab AssetManager.Instance.PostPreload(Constants.UI_STATE_BAR_SELF_CHARACTER); AssetManager.Instance.PostPreload(Constants.UI_STATE_BAR_SELF_VEHICLE); AssetManager.Instance.PostPreload(Constants.UI_STATE_BAR_ENEMY_VEHICLE); AssetManager.Instance.PostPreload(Constants.UI_STATE_BAR_SELF_SUMMON); AssetManager.Instance.PostPreload(Constants.UI_STATE_BAR_SELF_PROTECTED); AssetManager.Instance.PostPreload(Constants.UI_STATE_BAR_ENEMY_CHARACTER); AssetManager.Instance.PostPreload(Constants.UI_STATE_BAR_ENEMY_BUILDING); AssetManager.Instance.PostPreload(Constants.UI_STATE_BAR_NPC_CHARACTER); AssetManager.Instance.PostPreload(Constants.UI_STATE_BAR_NPC_VEHICLE); //预加载gridIcon AssetManager.Instance.PostPreload(Constants.UI_GRID_TYPE_CAPTURE); AssetManager.Instance.PostPreload(Constants.UI_GRID_TYPE_HOLDFLAG); AssetManager.Instance.PostPreload(Constants.UI_GRID_TYPE_FLAGRETURN); AssetManager.Instance.PostPreload(Constants.UI_GRID_TYPE_RETREAT0); AssetManager.Instance.PostPreload(Constants.UI_GRID_TYPE_RETREAT1); AssetManager.Instance.PostPreload(Constants.UI_GRID_TYPE_PREFAB); await AssetManager.Instance.WaitAllPreloads(); } /// /// 释放加载的UI相关资源 /// public void UnLoadAllPost() { AssetManager.Instance.Unload(string.Format(UIManager.UI_PREFAB_PATH, UINameConst.UICharacterStateBar), true); AssetManager.Instance.Unload(string.Format(UIManager.UI_PREFAB_PATH, UINameConst.UIVehicleStateBar), true); AssetManager.Instance.Unload(string.Format(UIManager.UI_PREFAB_PATH, UINameConst.UIEnemyStateBar), true); AssetManager.Instance.Unload(string.Format(UIManager.UI_PREFAB_PATH, UINameConst.UICharacterDamage), true); AssetManager.Instance.Unload(string.Format(UIManager.UI_PREFAB_PATH, UINameConst.UIFightTeamCD), true); AssetManager.Instance.Unload(LevelUIManager.GetMoralePic(true), true); AssetManager.Instance.Unload(LevelUIManager.GetMoralePic(false), true); for (int i = 0; i < 10; i++) { AssetManager.Instance.Unload(LevelUIManager.GetNumberImage(i), true); } var teamCharacterIDs = GetCharacterIDs(); var vehicleIDs = GetVehicleIDs(); for (int i = 0; i < teamCharacterIDs.Count; i++) { var uid = teamCharacterIDs[i]; var singleData = m_allCharactersMap[uid]; var cfg = singleData.GetConfigInfo(); var str = CommonUtils.GetCharacterPicPath(cfg.Cfg.RoleID, CommonUtils.ECharacterPicPathType.HeadPic, (int)cfg.SkinID); //CommonUtils.GetDefaultHeadPathByUid((uint)cfg.Cfg.RoleID); var posterStr = CommonUtils.GetCharacterPicPath(cfg.Cfg.RoleID, CommonUtils.ECharacterPicPathType.Poster); AssetManager.Instance.Unload(str); AssetManager.Instance.Unload(posterStr); } if (vehicleIDs.Count > 0) { var uid = vehicleIDs[0]; var singleData = m_allCharactersMap[uid]; AssetManager.Instance.Unload(CommonUtils.GetDefaultVehicleHeadPath((uint)singleData.GetVehicleInfo().Cfg.ID)); //singleData.GetVehicleInfo().Cfg.UIHeadPath } AssetManager.Instance.Unload(Constants.UI_RETREATE_STATE, true); AssetManager.Instance.Unload(Constants.UI_SUPPRESS_STATE, true); AssetManager.Instance.Unload(Constants.UI_RETREATE_STATE_MAP, true); AssetManager.Instance.Unload(Constants.UI_SUPPRESS_STATE_MAP, true); AssetManager.Instance.Unload(Constants.UI_INVEHICLE_STATE, true); } private void _OnFingerUp(Vector2 pos) { // if (IsHideAllUI) // { // IsHideAllUI = false; // } } /// /// 打开加载好的战斗内UI /// public void TeamUIOpen() { //UIManager.Instance.OpenLoadedNormalUI(UINameConst.UISkillPut); UIManager.Instance.OpenLoadedNormalUI(UINameConst.UI_StartBtn_CMSBtn); UIManager.Instance.OpenLoadedNormalUI(UINameConst.UIFightTarget); UIManager.Instance.OpenLoadedNormalUI(UINameConst.UITeamFight); UIManager.Instance.OpenLoadedNormalUI(UINameConst.UIFightClock); UIManager.Instance.OpenLoadedNormalUI(UINameConst.UIFightScene); var level = LevelManager.Instance.CurrentLevel; if (level != null) { var levelInfo = level.GetLevelInfo(); if (levelInfo.fightStoryData != null) { EventManager.Instance.Send(EventManager.EventName.UI_FIGHT_STORY_PREPARE); } } LevelManager.Instance.CurrentLevel.Map.ShowInfo(Map.InfoMask.ShowCells, true); AreaManager.instance.readyAreaManager.ShowReadyArea(); } public void TeamUIClose() { UIManager.Instance.CloseWindow(UINameConst.UI_StartBtn_CMSBtn); UIManager.Instance.CloseWindow(UINameConst.UISkillPut); UIManager.Instance.CloseWindow(UINameConst.UITeamFight); UIManager.Instance.CloseWindow(UINameConst.UIFightClock); UIManager.Instance.CloseWindow(UINameConst.UIFightTarget); UIManager.Instance.CloseWindow(UINameConst.UIFightScene); UIManager.Instance.CloseWindow(UINameConst.UIFightTeam); UIManager.Instance.CloseWindow(UINameConst.UIFightTeamCD); FightInfoManager.RemoveFightInfoWindow(); LevelManager.Instance.SkillInfoClose(true); } #endregion }