using Cysharp.Threading.Tasks; using ET; using UnityEngine; namespace ET.Client { [Event] public class LoadSceneEventHandle : BEvent { protected override async ETTask OnEvent(EventType.LoadSceneEvent args) { UIHelper.ShowLoadingUI(); var mapInfo = MapConfigCategory.Instance.Get( args.mapId ); var scnName = mapInfo.MapName; Log.Debug( $"loading scene: {scnName}." ); // 加载场景资源 & 加载 var task = await YooAssetProxy.LoadSceneAsync( "Scene_" + scnName ); Log.Debug( $"scene({task.SceneObject.name}) load finished." ); UIHelper.Remove( "Lobby" ); await GameObjectPool.Instance.CacheSceneObject( mapInfo.Id ); Log.Debug( $"cache scene object end." ); // 通知等待场景切换的协程 EventSystem.Instance.Publish(); UIHelper.HideLoadingUI(); } } }