LoadSceneEventHandle.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using Cysharp.Threading.Tasks;
  2. using ET;
  3. using ET.EventType;
  4. using UnityEngine;
  5. namespace ET.Client
  6. {
  7. [Event]
  8. public class LoadSceneEventHandle : BEvent<EventType.LoadSceneEvent>
  9. {
  10. protected override async ETTask OnEvent(EventType.LoadSceneEvent args)
  11. {
  12. UIHelper.ShowLoadingUI();
  13. var mapInfo = MapConfigCategory.Instance.Get( args.mapId );
  14. var scnName = mapInfo.MapName;
  15. Log.Debug( $"loading scene: {scnName}." );
  16. // 加载场景资源 & 加载
  17. var task = await YooAssetProxy.LoadSceneAsync( "Scene_" + scnName );
  18. Log.Debug( $"scene({task.SceneObject.name}) load finished." );
  19. UIHelper.Remove( "Lobby" );
  20. await GameObjectPool.Instance.CacheSceneObject( mapInfo.Id );
  21. Log.Debug( $"cache scene object end." );
  22. UIHelper.HideLoadingUI();
  23. // 通知等待场景切换的协程
  24. //EventSystem.Instance.Publish<EventType.SceneLoadFinish>()
  25. UIHelper.RemoveAllUiExceptSth();
  26. EventSystem.Instance.Publish<ShowHUDEvent>();
  27. }
  28. }
  29. }