|
|
@@ -6,12 +6,10 @@ namespace ET.Client
|
|
|
// 场景切换协程
|
|
|
public static async ETTask SceneChangeTo(Scene clientScene, string sceneName, long sceneInstanceId)
|
|
|
{
|
|
|
- clientScene.RemoveComponent<AIComponent>();
|
|
|
+ clientScene.RemoveComponent<BattleScene>();
|
|
|
|
|
|
- CurrentScenesComponent currentScenesComponent = clientScene.GetComponent<CurrentScenesComponent>();
|
|
|
- currentScenesComponent.Scene?.Dispose(); // 删除之前的CurrentScene,创建新的
|
|
|
-
|
|
|
- Scene currentScene = LSSceneFactory.CreateClientRoomScene(sceneInstanceId, clientScene.Zone, sceneName, currentScenesComponent);
|
|
|
+ BattleScene battleScene = clientScene.AddComponent<BattleScene>();
|
|
|
+ battleScene.Name = sceneName;
|
|
|
|
|
|
// 等待表现层订阅的事件完成
|
|
|
await EventSystem.Instance.PublishAsync(clientScene, new EventType.LockStepSceneChangeStart());
|
|
|
@@ -21,9 +19,11 @@ namespace ET.Client
|
|
|
// 等待Room2C_EnterMap消息
|
|
|
WaitType.Wait_Room2C_EnterMap waitRoom2CEnterMap = await clientScene.GetComponent<ObjectWait>().Wait<WaitType.Wait_Room2C_EnterMap>();
|
|
|
|
|
|
- currentScene.GetComponent<BattleComponent>().InitUnit(waitRoom2CEnterMap.Message.UnitInfo);
|
|
|
+ battleScene.LSScene = new LSScene(SceneType.LockStepClient);
|
|
|
+ battleScene.InitUnit(waitRoom2CEnterMap.Message.UnitInfo);
|
|
|
|
|
|
- EventSystem.Instance.Publish(currentScene, new EventType.LockStepSceneInitFinish());
|
|
|
+ // 这个事件中可以订阅取消loading
|
|
|
+ EventSystem.Instance.Publish(clientScene, new EventType.LockStepSceneInitFinish());
|
|
|
}
|
|
|
}
|
|
|
}
|