public static async ETVoid EnterMapAsync() { try { // 加载Unit资源 ResourcesComponent resourcesComponent = ETModel.Game.Scene.GetComponent <ResourcesComponent>(); await resourcesComponent.LoadBundleAsync($"player.unity3d"); // 加载场景资源 await ETModel.Game.Scene.GetComponent <ResourcesComponent>().LoadBundleAsync("map.unity3d"); // 切换到map场景 using (SceneChangeComponent sceneChangeComponent = ETModel.Game.Scene.AddComponent <SceneChangeComponent>()) { await sceneChangeComponent.ChangeSceneAsync(SceneType.Map); } Game.Scene.AddComponent <OperaComponent>(); Game.Scene.AddComponent <PlatformComponent>(); Player player = PlayerFactory.Create(IdGenerater.GenerateId()); PlayerComponent playerComponent = Game.Scene.GetComponent <PlayerComponent>(); playerComponent.MyPlayer = player; Game.EventSystem.Run(EventIdType.EnterMapFinish); } catch (Exception e) { Log.Error(e); } }
public static async ETVoid EnterMapAsync(string sceneName) { try { // 加载Unit资源 var 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(sceneName); } var g2CEnterMap = await ETModel.SessionComponent.Instance.Session.Call(new C2G_EnterMap()) as G2C_EnterMap; Game.EventSystem.Run(EventIdType.EnterMapFinish); } catch (Exception e) { Log.Error(e); } }
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); Game.EventSystem.Run(EventIdType.EnterBattlefieldFinish); } Game.EventSystem.Run(EventIdType.GMCreateTank, 10000); // 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 { // 加载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 EnterMainAsync() { try { //1.获取资源 ResourcesComponent resourcesComponent = ETModel.Game.Scene.GetComponent <ResourcesComponent>(); await resourcesComponent.LoadBundleAsync("unit.unity3d"); await ETModel.Game.Scene.GetComponent <ResourcesComponent>().LoadBundleAsync("main.unity3d"); using (SceneChangeComponent sceneChangeComponent = ETModel.Game.Scene.AddComponent <SceneChangeComponent>()) { await sceneChangeComponent.ChangeSceneAsync(SceneType.Main); Log.Debug("场景加载进度:" + sceneChangeComponent.Process); } Game.Scene.AddComponent <MainComponent>(); Game.EventSystem.Run(EventIdType.EnterMainFinish); } catch (System.Exception e) { Log.Error(e); } }
/// <summary> /// 联网demo的切换场景 /// </summary> /// <returns></returns> public static async ETVoid EnterMyGameAsync() { try { // 获取加载ResourcesComponent组件 加载Unit资源(放一些模型) ResourcesComponent resourcesComponent = ETModel.Game.Scene.GetComponent <ResourcesComponent>(); await resourcesComponent.LoadBundleAsync($"unit.unity3d"); //异步加载 // 加载map场景资源 await ETModel.Game.Scene.GetComponent <ResourcesComponent>().LoadBundleAsync("mygame.unity3d"); // 切换到map场景 using (SceneChangeComponent sceneChangeComponent = ETModel.Game.Scene.AddComponent <SceneChangeComponent>()) { await sceneChangeComponent.ChangeSceneAsync(SceneType.MyGame); } //发送消息到服务器 G2C_EnterMyGame g2CEnterMyGame = await ETModel.SessionComponent.Instance.Session.Call(new C2G_EnterMyGame()) as G2C_EnterMyGame; //把自己的ID设置为刚生成传过来的ID PlayerComponent.Instance.MyPlayer.UnitId = g2CEnterMyGame.UnitId; Game.Scene.AddComponent <OperaComponent>(); Game.EventSystem.Run(EventIdType.ChoiceCharacterFinish); } catch (Exception e) { Log.Error(e); } }
public async ETVoid RunAsync() { // 加载Unit资源 ResourcesComponent resourcesComponent = ETModel.Game.Scene.GetComponent <ResourcesComponent>(); // 加载场景资源 await resourcesComponent.LoadBundleAsync(AssetBundleName.Unit); await resourcesComponent.LoadBundleAsync(AssetBundleName.Battle); // 切换到Battle场景 using (SceneChangeComponent sceneChangeComponent = Game.Scene.AddComponent <SceneChangeComponent>()) { await sceneChangeComponent.ChangeSceneAsync(SceneType.Battle); } C2B_LoadAssetFinish msg = new C2B_LoadAssetFinish(); ETModel.SessionComponent.Instance.Session.Send(msg); }
public static async ETVoid EnterOutSpaceAsync() { try { // 加载Unit资源 ResourcesComponent resourcesComponent = ETModel.Game.Scene.GetComponent <ResourcesComponent>(); await resourcesComponent.LoadBundleAsync($"unit.unity3d"); // 加载场景资源 await ETModel.Game.Scene.GetComponent <ResourcesComponent>().LoadBundleAsync("outspace.unity3d"); // 切换到outspace场景 using (SceneChangeComponent sceneChangeComponent = ETModel.Game.Scene.AddComponent <SceneChangeComponent>()) { await sceneChangeComponent.ChangeSceneAsync(SceneType.OutSpace); } G2C_EnterOutSpace g2CEnterMap = await ETModel.SessionComponent.Instance.Session.Call(new C2G_EnterOutSpace()) as G2C_EnterOutSpace; PlayerComponent.Instance.MyPlayer.UnitId = g2CEnterMap.ShipId; Game.Scene.AddComponent <OutSpaceComponent>(); Game.EventSystem.Run(EventIdType.LobbyFinish); Game.EventSystem.Run(EventIdType.Init_UI_OutSpace); } catch (Exception e) { Log.Error(e); } }
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); } }
public void Awake() { this.FUIComponent = this.GetParent <FUI>(); SceneChangeComponent = Game.Scene.GetComponent <SceneChangeComponent>(); m_time = TimeHelper.NowSecond(); CanClose = false; this.StartFUI(); }
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); } }
public static async ETVoid LoadScene(string sceneName, Action onLoaded = null) { Game.Scene.GetComponent <UnitEntity>().RemoveAll(); // 加载场景资源 await ETModel.Game.Scene.GetComponent <ResourcesComponent>().LoadBundleAsync(sceneName.StringToAB()); // 切换到map场景 using (SceneChangeComponent sceneChangeComponent = ETModel.Game.Scene.AddComponent <SceneChangeComponent>()) { await sceneChangeComponent.ChangeSceneAsync(sceneName); } onLoaded?.Invoke(); }
public static async ETVoid EnterMapAsync() { try { Session hotfixSession = Game.Scene.GetComponent <SessionComponent>().Session; ResourcesAsyncComponent resourcesAsync = ETModel.Game.Scene.GetComponent <ResourcesAsyncComponent>(); PlayerInfoComponent playerInfo = Game.Scene.GetComponent <PlayerInfoComponent>(); if (hotfixSession == null) { Log.Error("获取hotfixSession失败"); } G2C_RequestEnterMap g2CRequestEnterMap = (G2C_RequestEnterMap)await hotfixSession.Call(new C2G_RequestEnterMap() { Account = playerInfo.account }); // 加载场景资源 SceneAssetRequest sceneAssetAsyncRequest = Assets.LoadSceneAsync("Arena.unity3d"); await resourcesAsync.LoadSceneAsync(sceneAssetAsyncRequest); // 切换到map场景 using (SceneChangeComponent sceneChangeComponent = ETModel.Game.Scene.AddComponent <SceneChangeComponent>()) { await sceneChangeComponent.ChangeSceneAsync(SceneType.Arena); } PlayerCube playerCube = await PlayerCubeFactory.Create(new Vector3(g2CRequestEnterMap.PositionX, g2CRequestEnterMap.PositionY, g2CRequestEnterMap.PositionZ)); //获取其它在地图里的玩家 hotfixSession.Send(new C2G_GetOtherPlayer() { Account = playerInfo.account }); //添加网络同步脚本 playerCube.AddComponent <PlayerCubeNetComponent, int>(playerInfo.account); nowPlayerCube = playerCube; Game.EventSystem.Run(EventIdType.EnterMapFinish); } catch (Exception e) { Log.Error(e); } }
protected async ETVoid RunAsync(ETModel.Session session, B2C_BattleEnd message) { ETModel.Game.Scene.GetComponent <TankComponent>().RemoveAll(); // 加载Unit资源 ResourcesComponent resourcesComponent = ETModel.Game.Scene.GetComponent <ResourcesComponent>(); // 加载场景资源 await resourcesComponent.LoadBundleAsync("start.unity3d"); using (SceneChangeComponent sceneChangeComponent = Game.Scene.AddComponent <SceneChangeComponent>()) { await sceneChangeComponent.ChangeSceneAsync(SceneType.Start); } await FUIFactory.Create <CombatSettlementViewComponent, B2C_BattleEnd>(FUIType.CombatSettlement, message); }
// Start is called before the first frame update public static async ETVoid EnterLoad1SceneAsync() { try { //1.获取资源 await ETModel.Game.Scene.GetComponent <ResourcesComponent>().LoadBundleAsync("load1.unity3d"); using (SceneChangeComponent sceneChangeComponent = ETModel.Game.Scene.AddComponent <SceneChangeComponent>()) { await sceneChangeComponent.ChangeSceneAsync(SceneType.Load1); } Game.EventSystem.Run(EventIdType.EnterLoad1SceneFinish); } catch (System.Exception e) { Log.Error(e); } }
public static async ETVoid LoadScene(string sceneName, Action onLoaded = null) { Game.Scene.GetComponent <UnitEntity>().RemoveAll(); EventMgr.Send(EventKey.StartLoadScene); // 加载场景资源 await ETModel.Game.Scene.GetComponent <ResourcesComponent>().LoadBundleAsync(sceneName.StringToAB()); while (ETModel.Game.Scene.GetComponent <SceneChangeComponent>() != null) { await ETModel.Game.Scene.GetComponent <TimerComponent>().WaitAsync(100); } using (SceneChangeComponent sceneChangeComponent = ETModel.Game.Scene.AddComponent <SceneChangeComponent>()) { await sceneChangeComponent.ChangeSceneAsync(sceneName); } EventMgr.Send(EventKey.EndLoadScene); onLoaded?.Invoke(); }
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); } }
protected override async void Run(ETModel.Session session, A1004_CreateMoba5V5Secene_M2C message) { //开启加载界面 切换UI UIComponent uiComponent = Game.Scene.GetComponent <UIComponent>(); UI ui = uiComponent.Get(UIType.SekiaLobby); if (ui == null) { return; } if (ui.GetComponent <SekiaLobbyComponent>().isMatching == false) { return; } uiComponent.Create(UIType.Moba5V5UI); uiComponent.Remove(UIType.SekiaLobby); //切换场景 using (SceneChangeComponent sceneChangeComponent = ETModel.Game.Scene.AddComponent <SceneChangeComponent>()) { await sceneChangeComponent.ChangeSceneAsync(SceneType.Moba5V5Map); } //加载配置 ResourcesComponent resourcesComponent = ETModel.Game.Scene.GetComponent <ResourcesComponent>(); await resourcesComponent.LoadBundleAsync($"unit.unity3d"); GameObject bundleGameObject = (GameObject)resourcesComponent.GetAsset("Unit.unity3d", "Unit"); ConfigComponent config = Game.Scene.GetComponent <ConfigComponent>(); Moba5V5Component moba = Game.Scene.AddComponent <Moba5V5Component>(); //创建空气墙 编号73和74 for (int i = 0; i < 2; i++) { Moba5V5Config qiang = (Moba5V5Config)config.Get(typeof(Moba5V5Config), 73 + i); GameObject qiangPrefab = bundleGameObject.Get <GameObject>(qiang.Prefab); qiangPrefab.transform.position = new Vector3((float)qiang.Position[0], (float)qiang.Position[1], (float)qiang.Position[2]); qiangPrefab.transform.eulerAngles = new Vector3(0, qiang.Rotation, 0); qiangPrefab.name = $"Qiang{(i + 1).ToString()}"; UnityEngine.Object.Instantiate(qiangPrefab).transform.SetParent(GameObject.Find($"/Global/Unit").transform, false); } //创建10个英雄的GameObject和Gamer MobaID编号1-10 for (int i = 0; i < message.Gamers.Count; i++) { //获取英雄配置 角色配置 技能配置 HeroConfig heroConfig = (HeroConfig)config.Get(typeof(HeroConfig), message.Gamers[i].HeroID); Moba5V5Config moba5V5Config = (Moba5V5Config)config.Get(typeof(Moba5V5Config), i + 1); GameObject prefab = bundleGameObject.Get <GameObject>(heroConfig.Prefab); prefab.transform.position = new Vector3((float)moba5V5Config.Position[0], (float)moba5V5Config.Position[1], (float)moba5V5Config.Position[2]); prefab.transform.eulerAngles = new Vector3(0, moba5V5Config.Rotation, 0); //创建角色 Gamer gamer = ETModel.ComponentFactory.Create <Gamer, long>(message.Gamers[i].UserID); gamer.GameObject = UnityEngine.Object.Instantiate(prefab); gamer.GameObject.transform.SetParent(GameObject.Find($"/Global/Unit").transform, false); int mobaID = moba.MobaID; //获取ID moba.mobaIDGamers.Add(mobaID, gamer); //添加到词典 //添加Unity组件 NavMeshAgent navMeshAgent = gamer.GameObject.AddComponent <NavMeshAgent>(); navMeshAgent.radius = 0.2f; navMeshAgent.height = 0.8f; navMeshAgent.angularSpeed = 360f; navMeshAgent.obstacleAvoidanceType = ObstacleAvoidanceType.NoObstacleAvoidance; //添加ET组件 GamerAnimatorComponent anime = gamer.AddComponent <GamerAnimatorComponent>(); gamer.AddComponent <GamerMoveComponent>(); gamer.AddComponent <GamerTurnComponent>(); gamer.AddComponent <GamerPathComponent>(); //设置角色 CharacterComponent character = gamer.AddComponent <CharacterComponent>(); character.mobaID = mobaID; character.group = moba5V5Config.Group; //阵营 character.type = moba5V5Config.Type; //类型 character.route = moba5V5Config.Route; //默认导航线路 character.anime = anime; //确认本地玩家 if (gamer.UserID == GamerComponent.Instance.MyUser.UserID) { gamer.AddComponent <GamerCameraComponent>(); moba.myGamer = gamer; } } //创建攻击类建筑 MobaID编号11-30 for (int i = 0; i < 20; i++) { //获取角色配置 Moba5V5Config moba5V5Config = (Moba5V5Config)config.Get(typeof(Moba5V5Config), i + 11); //创建角色 Gamer gamer = ETModel.ComponentFactory.Create <Gamer>(); gamer.GameObject = GameObject.Find($"/World/5v5_Map/mobaTower{i+1}"); gamer.GameObject.transform.SetParent(GameObject.Find($"/Global/Unit").transform, false); int mobaID = moba.MobaID; //获取ID moba.mobaIDGamers.Add(mobaID, gamer); //添加到词典 //添加ET组件 gamer.AddComponent <GamerAnimatorComponent>(); CharacterComponent character = gamer.AddComponent <CharacterComponent>(); //设置角色 character.mobaID = mobaID; character.group = moba5V5Config.Group; //阵营 character.type = moba5V5Config.Type; //类型 } //初始加载完成 SessionComponent.Instance.Session.Send(new A1007_GamerReadyMoba5V5_C2M()); //等待服务端通知游戏计时开始 //等待服务端通知刷新第一波小兵 //等待服务端通知刷新普通野怪 //等待服务端通知刷新大龙 }