protected async ETVoid RunAsync(ETModel.Session session, G2C_StartGame message) { C2G_EnterBattle msg = new C2G_EnterBattle(); msg.BattleId = message.RoomId; G2C_EnterBattle response = (G2C_EnterBattle)await ETModel.SessionComponent.Instance.Session.Call(msg); PlayerComponent.Instance.MyPlayer.TankId = response.TankId; Log.Warning($"坦克id = {response.TankId}"); Game.EventSystem.Run(EventIdType.EnterBattle); //ETModel.Game.Scene.AddComponent<BattleComponent>(); }
private static async ETVoid EnterBattleAsync() { try { // 加载Unit资源 ResourcesComponent resourcesComponent = ETModel.Game.Scene.GetComponent <ResourcesComponent>(); // 加载场景资源 await resourcesComponent.LoadBundleAsync("battle.unity3d"); // 切换到Battle场景 using (SceneChangeComponent sceneChangeComponent = Game.Scene.AddComponent <SceneChangeComponent>()) { await sceneChangeComponent.ChangeSceneAsync(SceneType.Battle); } G2C_EnterBattle g2CEnterBattle = await ETModel.SessionComponent.Instance.Session.Call(new C2G_EnterBattle()) as G2C_EnterBattle; PlayerComponent.Instance.MyPlayer.TankId = g2CEnterBattle.TankId; Log.Warning($"坦克id = {g2CEnterBattle.TankId}"); Game.EventSystem.Run(EventIdType.EnterBattleFinish); ETModel.Game.Scene.AddComponent <BattleComponent>(); // G2C_EnterMap g2CEnterMap = await ETModel.SessionComponent.Instance.Session.Call(new C2G_EnterMap()) as G2C_EnterMap; // PlayerComponent.Instance.MyPlayer.UnitId = g2CEnterMap.UnitId; // // Game.Scene.AddComponent<OperaComponent>(); // // // 逻辑层不应该去调用UI,逻辑层只关心逻辑并且抛出事件,由UI层自己去订阅事件 // Game.EventSystem.Run(EventIdType.EnterMapFinish); } catch (Exception e) { Log.Error(e); } }