|
@@ -25,17 +25,28 @@ namespace ET.Client
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- SceneChangeHelper.SceneChangeTo(clientScene, mapinfo, g2CEnterMap.MapInstanceId).Coroutine();
|
|
|
- // 等待场景切换完成
|
|
|
- await clientScene.GetComponent<ObjectWait>().Wait<Wait_SceneChangeFinish>();
|
|
|
-
|
|
|
- //告诉战斗服 i am ready
|
|
|
+ //告诉战斗服 i am ready,然后战斗服才会在场景创建其它单位
|
|
|
session.Send(new BattleClientReady());
|
|
|
+
|
|
|
+ SceneChangeTo(clientScene, mapinfo, g2CEnterMap.MapInstanceId).Coroutine();
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
|
Log.Error(e);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // 场景切换协程
|
|
|
+ public static async ETTask SceneChangeTo(Scene clientScene, MapConfig map, long sceneInstanceId)
|
|
|
+ {
|
|
|
+ CurrentScenesComponent currentScenesComponent = clientScene.GetComponent<CurrentScenesComponent>();
|
|
|
+ currentScenesComponent.Scene?.Dispose(); // 删除之前的CurrentScene,创建新的
|
|
|
+ SceneFactory.CreateCurrentScene(sceneInstanceId, clientScene.Zone, map.MapName, currentScenesComponent);
|
|
|
+
|
|
|
+ // 可以订阅这个事件中创建Loading界面
|
|
|
+ EventSystem.Instance.Publish(EventType.LoadSceneEvent.Clone(map.Id));
|
|
|
+
|
|
|
+ await ETTask.CompletedTask;
|
|
|
+ }
|
|
|
}
|
|
|
}
|