public void SendSelectionInfo() { SelectedSkillData data = new SelectedSkillData(); data.skillIndex = new int[3]; data.userCamp = MatchingManager.instance.userInfo.userData.playerCamp; // userData.id가 only Integer라는 것을 가정. for (int i = 0; i < 3; i++) { try { data.skillIndex[i] = selectedSkills[i]; } catch { data.skillIndex[i] = 0; Debug.Log("스킬 선택을 안했음으로 0번째 스킬을 넣습니다."); } } SelectedSkillPacket packet = new SelectedSkillPacket(data); GameObject.Find("GameNetworkManager").GetComponent <GameNetworkManager>().SendLocalSkillSelect(packet); }
public bool Serialize(SelectedSkillData packet) { bool ret = true; ret &= Serialize(packet.userCamp); ret &= Serialize(packet.skillIndex[0]); ret &= Serialize(packet.skillIndex[1]); ret &= Serialize(packet.skillIndex[2]); return(ret); }
public bool Deserialize(ref SelectedSkillData element) { // 데이터가 정의되어있지 않다면 if (GetDataSize() == 0) { return(false); } bool ret = true; ret &= Deserialize(ref element.userCamp); element.skillIndex = new int[3]; ret &= Deserialize(ref element.skillIndex[0]); ret &= Deserialize(ref element.skillIndex[1]); ret &= Deserialize(ref element.skillIndex[2]); return(ret); }
// 스킬 선택 씬에서 선택했던 스킬 번호 획득 함수 public void OnReceiveSelectedSkillPacket(PacketId id, byte[] data) { SelectedSkillPacket packet = new SelectedSkillPacket(data); SelectedSkillData skillInfo = packet.GetPacket(); // 스킬 번호 리스트에 추가 if (skillInfo.userCamp == 1) { firstCampSkills.Add(skillInfo.skillIndex[0]); firstCampSkills.Add(skillInfo.skillIndex[1]); firstCampSkills.Add(skillInfo.skillIndex[2]); } else { secondCampSkills.Add(skillInfo.skillIndex[0]); secondCampSkills.Add(skillInfo.skillIndex[1]); secondCampSkills.Add(skillInfo.skillIndex[2]); } }
// 스킬 선택 종료시, 서버에게 현재 선택한 스킬 정보 송신 public void SendSelectionInfo() { // 스킬 3개 선택 안했을 경우 나머지 스킬은 -1으로 채운다. for (int i = selectedSkillIndex.Count; i < 3; i++) { selectedSkillIndex.Add(-1); } SelectedSkillData data = new SelectedSkillData(); data.skillIndex = new int[3]; data.userCamp = MatchingManager.instance.userInfo.userData.playerCamp; // userData.id가 only Integer라는 것을 가정. for (int i = 0; i < 3; i++) { data.skillIndex[i] = selectedSkillIndex[i]; } SelectedSkillPacket packet = new SelectedSkillPacket(data); GameObject.Find("MatchingManager").GetComponent <MatchingNetworkManager>().SendReliable <SelectedSkillData>(packet); }