//캐릭터 움직임(공격, 점프, 스킬 등등) -> Client public void CharacterActionSend(int action) { if (characterManager == null) { characterManager = GameObject.FindGameObjectWithTag("Player").GetComponent <CharacterManager>(); } CharacterActionData characterActionData = new CharacterActionData(action, (byte)characterManager.UserNum); CharacterActionPacket characterActionPacket = new CharacterActionPacket(characterActionData); characterActionPacket.SetPacketId((int)P2PPacketId.CharacterAction); byte[] msg = CreatePacket(characterActionPacket); Debug.Log("캐릭터 상태 보냄"); for (int index = 0; index < networkManager.UserIndex.Count; index++) { int userIndex = networkManager.UserIndex[index].UserNum; if (networkManager.MyIndex != userIndex) { DataPacket packet = new DataPacket(CreateUdpPacket(characterActionPacket, udpId[userIndex]), networkManager.UserIndex[index].EndPoint); sendMsgs.Enqueue(packet); } } }
//Client public void CharacterAction(DataPacket packet, int udpId) { CharacterActionPacket characterActionPacket = new CharacterActionPacket(packet.msg); CharacterActionData characterActionData = characterActionPacket.GetData(); CharacterManager characterManager = dungeonManager.characters[characterActionData.userNum]; characterManager.CharState(characterActionData.action); }