/// <summary> /// 整个房间的初始化 /// </summary> private async void Init() { PlayerInit(); //选择英雄的时间 await Task.Delay(selectHeroTime); //是不是所有玩家都锁定了英雄 if (lockCount == (roomInfo.TeamA.Count + roomInfo.TeamB.Count)) { //所有人都锁定了选择的英雄 //可以加载战斗了 RoomToBattleS2C s2cMSG = new RoomToBattleS2C(); foreach (var rolesID in playerList.Keys) { UClient client = GameManager.uSocket.GetClient (PlayerManager.GetPlayerEntityFromRoles(rolesID).session); //缓存每一个客户端 为广播接口服务的 clientList.TryAdd(rolesID, client); s2cMSG.PlayerList.Add(playerList[rolesID]); } Broadcast(1407, s2cMSG); } else { //解散房间 RoomCloseS2C s2cMSG = new RoomCloseS2C(); Broadcast(1403, s2cMSG); //通知房间管理器 释放掉这个房间 RoomManager.Instance.Remove(roomID); } }
/// <summary> /// 加载进入战斗 /// </summary> /// <param name="response"></param> private void HandleRoomToBattleS2C(BufferEntity response) { RoomToBattleS2C s2cMSG = ProtobufHelper.FromBytes <RoomToBattleS2C>(response.proto); RoomCtrl.Instance.SavePlayerList(s2cMSG.PlayerList); transform.Find("LoadBG").gameObject.SetActive(true); HeroA_item = transform.Find("LoadBG/L_TeamA/HeroA_item"); HeroB_item = transform.Find("LoadBG/L_TeamB/HeroB_item"); for (int i = 0; i < s2cMSG.PlayerList.Count; i++) { GameObject go; //A队伍 if (s2cMSG.PlayerList[i].TeamID == 0) { go = GameObject.Instantiate(HeroA_item.gameObject, HeroA_item.parent, false); } //B队伍 else { go = GameObject.Instantiate(HeroB_item.gameObject, HeroB_item.parent, false); } go.transform.GetComponent <Image>().sprite = ResManager.Instance.LoadHeroTexture(s2cMSG.PlayerList[i].HeroID); go.transform.Find("NickName").GetComponent <Text>().text = s2cMSG.PlayerList[i].RolesInfo.NickName; go.transform.Find("SkillA").GetComponent <Image>().sprite = ResManager.Instance.LoadGeneralSkill(s2cMSG.PlayerList[i].SkillA); go.transform.Find("SkillB").GetComponent <Image>().sprite = ResManager.Instance.LoadGeneralSkill(s2cMSG.PlayerList[i].SkillB); go.transform.Find("Progress").GetComponent <Text>().text = "0%"; go.gameObject.SetActive(true); //缓存克隆出来的游戏物体 更新进度 playerLoadDIC[s2cMSG.PlayerList[i].RolesInfo.RolesID] = go; } async = SceneManager.LoadSceneAsync("Level01"); async.allowSceneActivation = false;//不要激活场景 //定时的去发送加载进度 SendProgeress(); }