首页 > 解决方案 > 接收 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());
        }
    }
}

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

标签: c#arraysunity3dudp

解决方案


推荐阅读