瀏覽代碼

添加切换场景动画

lzx 1 天之前
父節點
當前提交
44f7b1744d

+ 18 - 6
Assets/Scripts/GameLogic/Player/PlayerManager.cs

@@ -8,6 +8,7 @@ using Fort23.Core;
 using Fort23.Mono;
 using Fort23.UTool;
 using GameLogic.Bag;
+using GameLogic.Combat.CombatTool;
 using GameLogic.CombatScenesTool;
 using GameLogic.Hero;
 using GameLogic.Player;
@@ -46,6 +47,7 @@ public class PlayerManager : Singleton<PlayerManager>
         set { playerName = value; }
     }
 
+    private CTask _cTask;
 
     public long serverTime => TimeHelper.ServerNow();
     private AccountFileInfo.SmallPlacesData currentPlaces;
@@ -313,6 +315,13 @@ public class PlayerManager : Singleton<PlayerManager>
 
         StaticUpdater.Instance.RemoveRenderUpdateCallBack(Update);
         StaticUpdater.Instance.AddRenderUpdateCallBack(Update);
+        
+        EventManager.Instance.AddEventListener(CustomEventType.CloseLoadingUI,CloseLoadingUI);
+    }
+
+    private void CloseLoadingUI(IEventData e)
+    {
+        _cTask?.SetResult();
     }
 
     private float timer;
@@ -346,11 +355,9 @@ public class PlayerManager : Singleton<PlayerManager>
         }
 
         return (float)Math.Round(((float)placesData.progress / placesConfig.TotalScore) * 100, 1);
-        // AccountFileInfo.Instance.playerData.completeEvents.Where(ce =>placesConfig.MainTaskID.Contains(ce.eventID) || placesConfig.ZhixianID.Contains(ce.eventID) || placesConfig.ZhixianID.Contains(ce.1001
-        // ))
     }
 
-    // List<long> removeKey = new List<long>();
+
 
     private bool isUpdate = false;
 
@@ -453,7 +460,7 @@ public class PlayerManager : Singleton<PlayerManager>
         }
     }
 
-    public async void ChangeMap(int mapId)
+    public async CTask ChangeMap(int mapId)
     {
         SmallPlacesConfig smallPlacesConfig = ConfigComponent.Instance.Get<SmallPlacesConfig>(mapId);
         if (smallPlacesConfig.ID == 0)
@@ -479,7 +486,9 @@ public class PlayerManager : Singleton<PlayerManager>
                 return;
             }
         }
-
+        UIManager.Instance.HindCurrAllShowPanel();
+        _cTask = CTask.Create();
+        
         AccountFileInfo.SmallPlacesData smallPlacesData =
             PlayerManager.Instance.GetSmallPlacesData(smallPlacesConfig.ID);
 
@@ -501,8 +510,11 @@ public class PlayerManager : Singleton<PlayerManager>
 
         PlayerManager.Instance.CurrentsmallPlaces = smallPlacesData;
 
-
+        CombatController.currActiveCombat.ChangeState(CombatController.sceneSwitch);
+        await _cTask;
+        UIManager.Instance.ShowLastHindAllShowPanel();
         EventManager.Instance.Dispatch(CustomEventType.ChangeMap, null);
+
     }
 
     public void QianKunDaiAward()

+ 12 - 21
Assets/Scripts/GameUI/UI/LevelChoosePanel/PlacesInfoPanel.cs

@@ -189,16 +189,16 @@ namespace Fort23.Mono
                 UIManager.Instance.HideUIUIPanel(this);
 
                 //切换下一个地图
-                PlayerManager.Instance.ChangeMap(smallPlacesConfig.ID + 1);
-               
-                UIManager.Instance.HindCurrAllShowPanel();
-                CombatDrive.Instance.CombatController.ChangeState(CombatController.update);
-                CombatController.currActiveCombat.CombatHeroController.Flight(2, -90, 10);
-                UIManager.Instance.SetEventSystemEnable(false);
-                await TimerComponent.Instance.WaitAsync(2 * 1000 + 1200);
-                CombatDrive.Instance.CombatController.ChangeState(CombatController.idle);
-                UIManager.Instance.SetEventSystemEnable(true);
-                UIManager.Instance.ShowLastHindAllShowPanel();
+                await PlayerManager.Instance.ChangeMap(smallPlacesConfig.ID + 1);
+
+
+                // CombatDrive.Instance.CombatController.ChangeState(CombatController.update);
+                // CombatController.currActiveCombat.CombatHeroController.Flight(2, -90, 10);
+                // UIManager.Instance.SetEventSystemEnable(false);
+                // await TimerComponent.Instance.WaitAsync(2 * 1000 + 1200);
+                // CombatDrive.Instance.CombatController.ChangeState(CombatController.idle);
+                // UIManager.Instance.SetEventSystemEnable(true);
+
                 callBack?.Invoke(true);
                 callBack = null;
             }
@@ -242,19 +242,10 @@ namespace Fort23.Mono
                 }
 
                 isChange = true;
-                PlayerManager.Instance.ChangeMap(smallPlacesConfig.ID);
-
                 UIManager.Instance.HideUIUIPanel<LevelChoosePanel>();
                 UIManager.Instance.HideUIUIPanel(this);
-
-                UIManager.Instance.HindCurrAllShowPanel();
-                CombatDrive.Instance.CombatController.ChangeState(CombatController.update);
-                CombatController.currActiveCombat.CombatHeroController.Flight(2, -90, 10);
-                UIManager.Instance.SetEventSystemEnable(false);
-                await TimerComponent.Instance.WaitAsync(2 * 1000 + 1200);
-                CombatDrive.Instance.CombatController.ChangeState(CombatController.idle);
-                UIManager.Instance.SetEventSystemEnable(true);
-                UIManager.Instance.ShowLastHindAllShowPanel();
+                await PlayerManager.Instance.ChangeMap(smallPlacesConfig.ID);
+                
                 callBack?.Invoke(true);
                 callBack = null;
             }