Exemplo n.º 1
0
    //캐릭터 움직임(공격, 점프, 스킬 등등) -> 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);
            }
        }
    }
Exemplo n.º 2
0
    //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);
    }