예제 #1
0
        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>();
        }
예제 #2
0
        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);
            }
        }