Example #1
0
    //유닛 위치 -> Client
    public IEnumerator UnitPositionSend(GameObject unit)
    {
        Debug.Log("몬스터 위치 보내기 시작");
        Monster monster = unit.GetComponent <Monster>();

        while (true)
        {
            yield return(new WaitForSeconds(0.016f));

            bool  dir  = monster.Direction;
            float xPos = monster.transform.position.x;
            float yPos = monster.transform.position.y;
            float zPos = monster.transform.position.z;

            UnitPositionData   unitPositionData   = new UnitPositionData((byte)UnitType.Monster, dir, xPos, yPos, zPos, (byte)monster.MonsterIndex);
            UnitPositionPacket unitPositionPacket = new UnitPositionPacket(unitPositionData);
            unitPositionPacket.SetPacketId((int)P2PPacketId.UnitPosition);

            byte[] msg = CreatePacket(unitPositionPacket);

            for (int index = 0; index < NetworkManager.Instance.UserIndex.Count; index++)
            {
                Debug.Log(index + ", " + NetworkManager.Instance.MyIndex);
                if (NetworkManager.Instance.MyIndex != index)
                {
                    Debug.Log("몬스터 위치 보냄");
                    DataPacket packet = new DataPacket(msg, NetworkManager.Instance.UserIndex[index].EndPoint);
                    sendMsgs.Enqueue(packet);
                }
            }
        }
    }
Example #2
0
    //캐릭터 위치 -> Client
    public IEnumerator CharacterPositionSend(GameObject unit)
    {
        CharacterManager characterManager = unit.GetComponent <CharacterManager>();

        Debug.Log("캐릭터 위치 보내기 시작");

        while (true)
        {
            yield return(new WaitForSeconds(0.016f));

            bool  dir  = characterManager.charDir;
            float xPos = characterManager.transform.position.x;
            float yPos = characterManager.transform.position.y;
            float zPos = characterManager.transform.position.z;

            UnitPositionData   unitPositionData   = new UnitPositionData((byte)UnitType.Hero, dir, xPos, yPos, zPos, (byte)characterManager.UserNum);
            UnitPositionPacket unitPositionPacket = new UnitPositionPacket(unitPositionData);
            unitPositionPacket.SetPacketId((int)P2PPacketId.UnitPosition);

            byte[] msg = CreatePacket(unitPositionPacket);

            for (int index = 0; index < networkManager.UserIndex.Count; index++)
            {
                int userIndex = networkManager.UserIndex[index].UserNum;

                if (networkManager.MyIndex != userIndex)
                {
                    DataPacket packet = new DataPacket(CreateUdpPacket(unitPositionPacket, udpId[userIndex]), networkManager.UserIndex[index].EndPoint);
                    sendMsgs.Enqueue(packet);
                }
            }
        }
    }
Example #3
0
    //캐릭터 위치 -> Client
    public IEnumerator CharacterPositionSend()
    {
        Debug.Log("캐릭터 위치 보내기 시작");
        CharacterManager characterManager = GameObject.FindWithTag("Player").GetComponent <CharacterManager>();

        while (true)
        {
            bool  dir  = characterManager.charDir;
            float xPos = characterManager.transform.position.x;
            float yPos = characterManager.transform.position.y;
            float zPos = characterManager.transform.position.z;

            UnitPositionData   unitPositionData   = new UnitPositionData((byte)UnitType.Hero, dir, xPos, yPos, zPos, (byte)NetworkManager.Instance.MyIndex);
            UnitPositionPacket unitPositionPacket = new UnitPositionPacket(unitPositionData);
            unitPositionPacket.SetPacketId((int)P2PPacketId.UnitPosition);

            for (int index = 0; index < NetworkManager.Instance.UserIndex.Count; index++)
            {
                if (NetworkManager.Instance.MyIndex != index)
                {
                    DataPacket packet = new DataPacket(CreateUdpPacket(unitPositionPacket, udpId[index]), NetworkManager.Instance.UserIndex[index].EndPoint);
                    sendMsgs.Enqueue(packet);
                }
            }

            yield return(new WaitForSeconds(0.016f));
        }
    }
Example #4
0
    //Client - 유닛 위치
    public void UnitPosition(DataPacket packet, int udpId)
    {
        UnitPositionPacket unitPositionPacket = new UnitPositionPacket(packet.msg);
        UnitPositionData   unitPositionData   = unitPositionPacket.GetData();

        if (unitPositionData.UnitType == (byte)UnitType.Hero)
        {
            dungeonManager.SetCharacterPosition(unitPositionData);
        }
        else if (unitPositionData.UnitType == (byte)UnitType.Monster)
        {
            dungeonManager.SetMonsterPosition(unitPositionData);
        }
    }