Example #1
0
        private async ETVoid EnterMapAsync()
        {
            try
            {
                // 加载Unit资源
                ResourcesComponent resourcesComponent = ETModel.Game.Scene.GetComponent <ResourcesComponent>();
                await resourcesComponent.LoadBundleAsync($"unit.unity3d");

                // 加载场景资源
                await ETModel.Game.Scene.GetComponent <ResourcesComponent>().LoadBundleAsync("map.unity3d");

                // 切换到map场景
                using (SceneChangeComponent sceneChangeComponent = ETModel.Game.Scene.AddComponent <SceneChangeComponent>())
                {
                    await sceneChangeComponent.ChangeSceneAsync(SceneType.Map);
                }

                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>();
                Game.Scene.GetComponent <UIComponent>().Remove(UIType.UILobby);
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
        }
Example #2
0
        public static async ETVoid EnterMapAsync()
        {
            try
            {
                // 加载Unit资源
                ResourcesComponent resourcesComponent = ETModel.Game.Scene.GetComponent <ResourcesComponent>();
                await resourcesComponent.LoadBundleAsync($"unit.unity3d");

                // 加载场景资源
                await ETModel.Game.Scene.GetComponent <ResourcesComponent>().LoadBundleAsync("map.unity3d");

                // 切换到map场景
                using (SceneChangeComponent sceneChangeComponent = ETModel.Game.Scene.AddComponent <SceneChangeComponent>())
                {
                    await sceneChangeComponent.ChangeSceneAsync(SceneType.Map.ToString());
                }

                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);
            }
        }
        public static async ETVoid EnterMapAsync()
        {
            try
            {
                // 切换到map场景
                // 加载场景资源
                await ETModel.Game.Scene.GetComponent <ResourcesComponent>().LoadSceneAsync(ABPathUtilities.GetScenePath(SceneType.Map));

                // 创建5v5游戏
                M5V5GameFactory.CreateM5V5Game();

                // 临时引用5v5游戏
                M5V5Game m5V5Game = Game.Scene.GetComponent <M5V5GameComponent>().m_5V5Game;

                G2C_EnterMap g2CEnterMap = await ETModel.SessionComponent.Instance.Session.Call(new C2G_EnterMap()) as G2C_EnterMap;

                //ETModel.Log.Info($"{DateTime.UtcNow}处理完成服务端发来的进入Map后的信息");

                PlayerComponent.Instance.MyPlayer.UnitId = g2CEnterMap.UnitId;

                // 添加点击地图寻路组件
                m5V5Game.AddComponent <MapClickCompoent>();
                ETModel.Game.EventSystem.Run(ETModel.EventIdType.CloseLoadingUI);
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
        }
Example #4
0
        /// <summary>
        /// 联网demo的切换场景
        /// </summary>
        /// <returns></returns>
        public static async ETVoid EnterMapAsync()
        {
            try
            {
                // 获取加载ResourcesComponent组件   加载Unit资源(其中包含了demo骷髅的模型)
                ResourcesComponent resourcesComponent = ETModel.Game.Scene.GetComponent <ResourcesComponent>();
                await resourcesComponent.LoadBundleAsync($"unit.unity3d");   //异步加载

                // 加载map场景资源
                await ETModel.Game.Scene.GetComponent <ResourcesComponent>().LoadBundleAsync("map.unity3d");

                // 切换到map场景
                using (SceneChangeComponent sceneChangeComponent = ETModel.Game.Scene.AddComponent <SceneChangeComponent>())
                {
                    await sceneChangeComponent.ChangeSceneAsync(SceneType.Map);
                }

                //发送消息到服务器
                G2C_EnterMap g2CEnterMap = await ETModel.SessionComponent.Instance.Session.Call(new C2G_EnterMap()) as G2C_EnterMap;

                //把自己的ID设置为刚生成传过来的ID
                PlayerComponent.Instance.MyPlayer.UnitId = g2CEnterMap.UnitId;

                Game.Scene.AddComponent <OperaComponent>();

                Game.EventSystem.Run(EventIdType.EnterMapFinish);
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
        }
        private async void EnterMap()
        {
            try
            {
                G2C_EnterMap g2CEnterMap = (G2C_EnterMap)await ETModel.SessionComponent.Instance.Session.Call(new C2G_EnterMap());

                Game.Scene.GetComponent <UIComponent>().Remove(UIType.UILobby);
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
        }
Example #6
0
        public static async ETVoid EnterMapAsync()
        {
            try
            {
                // 加载场景资源
                await ETModel.Game.Scene.GetComponent <ResourcesComponent>().LoadBundleAsync("map.unity3d");

                // 切换到map场景
                using (SceneChangeComponent sceneChangeComponent = ETModel.Game.Scene.AddComponent <SceneChangeComponent>())
                {
                    await sceneChangeComponent.ChangeSceneAsync(SceneType.Map);
                }
                ETModel.Game.EventSystem.Run(ETModel.EventIdType.LoadAssets);
                // 加载Unit资源
                //ResourcesComponent resourcesComponent = ETModel.Game.Scene.GetComponent<ResourcesComponent>();
                //  await resourcesComponent.LoadBundleAsync($"unit.unity3d");


                G2C_EnterMap g2CEnterMap = await ETModel.SessionComponent.Instance.Session.Call(new C2G_EnterMap()) as G2C_EnterMap;

                PlayerComponent.Instance.MyPlayer.UnitId = g2CEnterMap.UnitId;

                foreach (var v in UnitComponent.Instance.GetAll())
                {
                    if (v.Id == PlayerComponent.Instance.MyPlayer.UnitId)
                    {
                        UnitComponent.Instance.MyUnit = v;
                        v.AddComponent <CameraComponent>();
                        v.AddComponent <CommandComponent>().simulateFrame = g2CEnterMap.Frame;
                        Log.Debug("收到的当前帧为" + g2CEnterMap.Frame);
                        var list  = v.GetComponent <ActiveSkillComponent>().skillList.Keys.ToArray();
                        var input = v.AddComponent <InputComponent>();
                        input.AddSkillToHotKey("Q", list[0]);
                        //input.AddSkillToHotKey("W", list[1]); // 暂时没做使用技能时,位置输入和目标输入的数据传输.
                        //input.AddSkillToHotKey("E", list[2]);
                        break;
                    }
                }


                //Game.Scene.AddComponent<OperaComponent>();

                Game.EventSystem.Run(EventIdType.EnterMapFinish);
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
        }
Example #7
0
        private async void EnterMap()
        {
            try
            {
                G2C_EnterMap g2CEnterMap = (G2C_EnterMap)await ETModel.SessionComponent.Instance.Session.Call(new C2G_EnterMap());

                Game.Scene.GetComponent <UIComponent>().Remove(UIType.UILobby);
                PlayerComponent.Instance.MyPlayer.UnitId = g2CEnterMap.UnitId;
                await ETModel.Game.Scene.AddComponent <SceneChangeComponent>().ChangeSceneAsync(ETModel.SceneType.Map);
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
        }
Example #8
0
        public static async ETVoid EnterMapAsync()
        {
            try
            {
                // 加载Unit资源
                ResourcesComponent resourcesComponent = ETModel.Game.Scene.GetComponent <ResourcesComponent>();
                await resourcesComponent.LoadBundleAsync($"unit.unity3d");

                // 加载场景资源
                await ETModel.Game.Scene.GetComponent <ResourcesComponent>().LoadBundleAsync("map.unity3d");

                // 切换到map场景
                using (SceneChangeComponent sceneChangeComponent = ETModel.Game.Scene.AddComponent <SceneChangeComponent>())
                {
                    await sceneChangeComponent.ChangeSceneAsync(SceneType.Map);
                }

                Player       player      = ETModel.Game.Scene.GetComponent <PlayerComponent>().MyPlayer;
                G2C_EnterMap g2CEnterMap = await ETModel.SessionComponent.Instance.Session.Call(new C2G_EnterMap()
                {
                    PlayerId = player.Id
                }) as G2C_EnterMap;

                //PlayerComponent.Instance.MyPlayer.UnitId = g2CEnterMap.UnitId;
                player.UnitId = g2CEnterMap.UnitId;

                Debug.Log(" MapHelper-player.Id/player.UnitId: " + player.Id + " / " + player.UnitId);

                ///20190721 取消合并到Move里了
                //Game.Scene.AddComponent<OperaComponent>();

                Game.EventSystem.Run(EventIdType.EnterMapFinish);
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
        }
Example #9
0
 public virtual async ETTask C2G_EnterMapHandler(ETModel.Session session, C2G_EnterMap request, G2C_EnterMap response, Action reply)
 {
 }
Example #10
0
        public override async ETTask C2G_EnterMapHandler(Session session, C2G_EnterMap request, G2C_EnterMap response, Action reply)
        {
            Console.WriteLine("C2G_EnterMapHandler");
            Player player = session.GetComponent <SessionPlayerComponent>().Player;

            var createUnitRequest = new G2M_CreateUnit()
            {
                PlayerId = player.Id, GateSessionId = session.InstanceId
            };

            createUnitRequest.UnitId = player.UnitId;

            // 在map服务器上创建战斗Unit
            long mapInstanceId = StartConfigComponent.Instance.GetByName("Map1").SceneInstanceId;
            var  createUnit    = (M2G_CreateUnit)await ActorMessageSenderComponent.Instance.Call(mapInstanceId, createUnitRequest);

            player.UnitId = createUnit.UnitId;
            DBComponent.Instance.Save(player).Coroutine();

            response.UnitId = createUnit.UnitId;
            reply();
        }