123456789101112131415161718192021222324252627282930313233343536373839 |
- using Cysharp.Threading.Tasks;
- using UnityEngine;
- namespace ET.Client
- {
- [Event(SceneType.Client)]
- public class SceneChangeStart_AddComponent : AEvent<EventType.SceneChangeStart>
- {
- protected override async ETTask Run(Scene scene, EventType.SceneChangeStart args)
- {
- UIHelper.Create("Loading").Coroutine();
- 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.");
- await TimerComponent.Instance.WaitAsync(1000);
- UIHelper.Remove("Lobby");
- UIHelper.SetVisible("Loading", false);
- await GameObjectPool.Instance.CacheSceneObject(mapInfo.Id);
- Log.Debug($"cache scene object end.");
- // 通知等待场景切换的协程
- EventSystem.Instance.Publish<EventType.SceneLoadFinish>();
- Vector3 StartPos = new(30, 30, 0);
- Vector3 EndPos = new(230, 30, 0);
- CameraMgr.DragCamera(StartPos, EndPos, 7, () =>
- {
- Log.Debug("camera scroll end");
- scene.GetComponent<ObjectWait>().Notify(new Wait_SceneChangeFinish());
- });
- }
- }
- }
|