123456789101112131415161718192021222324252627282930 |
- using GFGGame;
- using System;
- namespace ET
- {
- public class M2C_StartSceneChangeHandler : AMHandler<M2C_StartSceneChange>
- {
- protected override async ETTask Run(Session session, M2C_StartSceneChange message)
- {
- LogUtil.LogDev("Notify Wait_SceneChangeStart");
- // 通知等待场景切换的协程
- GameGlobal.zoneScene.GetComponent<ObjectWait>().Notify(new WaitType.Wait_SceneChangeStart());
- CurrentScenesComponent currentScenesComponent = GameGlobal.zoneScene.GetComponent<CurrentScenesComponent>();
- currentScenesComponent.Scene?.Dispose(); // 删除之前的CurrentScene,创建新的
- Scene currentScene = SceneFactory.CreateCurrentScene(message.SceneInstanceId, GameGlobal.zoneScene.Zone, message.SceneName, currentScenesComponent);
- // 等待CreateMyUnit的消息
- WaitType.Wait_CreateMyUnit waitCreateMyUnit = await GameGlobal.zoneScene.GetComponent<ObjectWait>().Wait<WaitType.Wait_CreateMyUnit>();
- M2C_CreateMyUnit m2CCreateMyUnit = waitCreateMyUnit.Message;
- Unit unit = UnitFactory.Create(currentScene, m2CCreateMyUnit.Unit);
- GameGlobal.myNumericComponent = unit.GetComponent<NumericComponent>();
- LogUtil.LogDev("Notify Wait_SceneChangeFinish");
- // 通知等待场景切换的协程
- GameGlobal.zoneScene.GetComponent<ObjectWait>().Notify(new WaitType.Wait_SceneChangeFinish());
- }
- }
- }
|