Beispiel #1
0
        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);
    }
Beispiel #3
0
        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);
        }
Beispiel #4
0
    //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);
    }
Beispiel #6
0
    //캐릭터의 생성을 보내주는 메소드
    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);
    }
Beispiel #7
0
    //캐릭터의 생성을 보내주는 메소드
    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);
    }
Beispiel #8
0
    //캐릭터의 생성 -> 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);
            }
        }
    }
Beispiel #10
0
    //캐릭터의 생성 -> 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]++;
    }
Beispiel #11
0
        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);
        }