public bool Deserialize(ref CreateUnitData element) { if (GetDataSize() == 0) { // 데이터가 설정되지 않았다. return(false); } bool ret = true; byte type = 0; short id = 0; byte unitIndex = 0; float posX = 0; float posY = 0; float posZ = 0; ret &= Deserialize(ref type); ret &= Deserialize(ref id); ret &= Deserialize(ref unitIndex); ret &= Deserialize(ref posX); ret &= Deserialize(ref posY); ret &= Deserialize(ref posZ); element = new CreateUnitData(type, id, unitIndex, posX, posY, posZ); return(ret); }
public P2PPacketId CreateUnit(byte[] data) { CreateUnitDataPacket createUnitDataPacket = new CreateUnitDataPacket(data); CreateUnitData createUnitData = createUnitDataPacket.GetData(); dungeonManager.CreateUnit(createUnitData.ID, new Vector3(createUnitData.PosX, createUnitData.PosY, createUnitData.PosZ)); return(P2PPacketId.None); }
public bool Serialize(CreateUnitData data) { bool ret = true; ret &= Serialize(data.ID); ret &= Serialize(data.PosX); ret &= Serialize(data.PosY); ret &= Serialize(data.PosZ); return(ret); }
//Client - 유닛 생성 public void CreateUnit(DataPacket packet, int udpId) { Debug.Log(packet.endPoint.ToString() + "유닛 생성"); CreateUnitPacket createUnitPacket = new CreateUnitPacket(packet.msg); CreateUnitData createUnitData = createUnitPacket.GetData(); int index = networkManager.GetUserIndex(packet.endPoint); dungeonManager.CreateUnit(createUnitData.ID, index, new Vector3(createUnitData.PosX, createUnitData.PosY, createUnitData.PosZ)); DataSender.Instance.UdpAnswer(packet.endPoint, udpId); }
//Client - 유닛 생성 public void CreateUnit(DataPacket packet, int udpId) { Debug.Log(packet.endPoint.ToString() + "유닛 생성"); CreateUnitPacket createUnitPacket = new CreateUnitPacket(packet.msg); CreateUnitData createUnitData = createUnitPacket.GetData(); Debug.Log("유닛 생성 아이디 : " + createUnitData.ID); DungeonManager.Instance.CreateUnit(createUnitData); DataSender.Instance.UdpAnswer(packet.endPoint, udpId); }
//캐릭터의 생성을 보내주는 메소드 public void CreateUnitSend(short newId, Vector3 position) { short id = newId; float xPos = position.x; float yPos = position.y; float zPos = position.z; CreateUnitData createUnitData = new CreateUnitData(id, xPos, yPos, zPos); CreateUnitDataPacket createUnitDataPacket = new CreateUnitDataPacket(createUnitData); DataPacket packet = CreatePacket(createUnitDataPacket.GetPacketData(), P2PPacketId.CreateUnit); packet.endPoint = NetworkManager.client1; sendMsgs.Enqueue(packet); }
//캐릭터의 생성을 보내주는 메소드 public void CreateUnitSend(short newId, Vector3 position) { short Id = newId; float xPos = position.x; float yPos = position.y; float zPos = position.z; CreateUnitData createUnitData = new CreateUnitData(Id, xPos, yPos, zPos); CreateUnitDataPacket createUnitDataPacket = new CreateUnitDataPacket(createUnitData); byte[] msg = CreatePacket(createUnitDataPacket, P2PPacketId.CreateUnit); DataPacket packet = new DataPacket(msg, NetworkManager.client1); sendMsgs.Enqueue(packet); }
//캐릭터의 생성 -> Client public void CreateUnitSend(EndPoint endPoint, short characterId, float posX, float posY, float posZ) { Debug.Log(endPoint.ToString() + "캐릭터 생성 보냄"); CreateUnitData createUnitData = new CreateUnitData(characterId, posX, posY, posZ); CreateUnitPacket createUnitDataPacket = new CreateUnitPacket(createUnitData); createUnitDataPacket.SetPacketId((int)P2PPacketId.CreateUnit); int index = networkManager.GetUserIndex(endPoint); DataPacket packet = new DataPacket(CreateUdpPacket(createUnitDataPacket, udpId[index]), endPoint); sendMsgs.Enqueue(packet); SendData sendData = new SendData(udpId[index], endPoint, packet.msg); networkManager.ReSendManager.AddReSendData(sendData, index); udpId[index]++; }
public void CreateUnit(CreateUnitData createUnitData) { if (createUnitData.UnitType == (byte)UnitType.Hero) { if (players[createUnitData.UnitIndex] == null) { GameObject unit = Instantiate(Resources.Load("Class" + createUnitData.ID)) as GameObject; unit.transform.position = new Vector3(createUnitData.PosX, createUnitData.PosY, createUnitData.PosZ); unit.tag = "Player"; players[createUnitData.UnitIndex] = unit; characterData[createUnitData.UnitIndex] = unit.GetComponent <CharacterManager>(); characterData[createUnitData.UnitIndex].SetUnitIndex(createUnitData.UnitIndex); } else { Debug.Log("이미 있는 캐릭터 인덱스 : " + createUnitData.UnitIndex); } } }
//캐릭터의 생성 -> Client public void CreateUnitSend(EndPoint endPoint, byte unitType, short characterId, byte unitIndex, float posX, float posY, float posZ) { Debug.Log(endPoint.ToString() + "캐릭터 생성 보냄 아이디 " + characterId); CreateUnitData createUnitData = new CreateUnitData(unitType, characterId, unitIndex, posX, posY, posZ); CreateUnitPacket createUnitDataPacket = new CreateUnitPacket(createUnitData); createUnitDataPacket.SetPacketId((int)P2PPacketId.CreateUnit); int index = NetworkManager.Instance.GetUserIndex(endPoint); DataPacket packet = new DataPacket(CreateUdpPacket(createUnitDataPacket, udpId[index]), endPoint); sendMsgs.Enqueue(packet); SendData sendData = new SendData(udpId[index], endPoint, packet.msg); NetworkManager.Instance.ReSendManager.AddReSendData(sendData, index); ReSendManager.Instance.characterCreating = true; udpId[index]++; }
public bool Deserialize(ref CreateUnitData element) { if (GetDataSize() == 0) { // 데이터가 설정되지 않았다. return(false); } bool ret = true; short Id = 0; float posX = 0; float posY = 0; float posZ = 0; ret &= Deserialize(ref Id); ret &= Deserialize(ref posX); ret &= Deserialize(ref posY); ret &= Deserialize(ref posZ); element = new CreateUnitData(Id, posX, posY, posZ); return(ret); }