接收UDP数据包并将其保存在字符串数组中

时间:2018-12-15 17:59:17

标签: c# arrays unity3d udp

因此,我和我的团队一直在用Python + Unity进行交互式桌面塔防游戏,该游戏的输入由IRL塔提供,并在Python中被检测到,然后通过UDP发送给Unity。我们已经找到了一种可行的解决方案,用于检测x + y并通过UDP发送并将它们分为X和Y,但是当Unity接收位置时,它只是保存在变量中的最后一个。

因此,我们希望将数据保存在数组中,因此我们可以遍历数组以实例化对象及其位置。但是,我们对此一无所知,并寻求您的帮助。

这是我们用于接收X + Y的代码:

public void ReceiveData() {
    client = new UdpClient (port);

    while (true) {
        try {
            IPEndPoint anyIP = new IPEndPoint(IPAddress.Parse("127.0.0.1"), port);
            byte[] data = client.Receive(ref anyIP);
            string text = Encoding.UTF8.GetString(data);
            string[] texts = text.Split(',');
            string textX = texts[0];
            string textY = texts[1];

            print (">> " + text);
            lastReceivedUDPPacket = text;
            allReceivedUDPPackets = allReceivedUDPPackets + text;
            xPos = float.Parse(textX, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture);
            yPos = float.Parse(textY, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture);
        }
        catch(Exception e) {
            print (e.ToString());
        }
    }
}

希望您能提供帮助,并在此先感谢:)

0 个答案:

没有答案