c# - 接收 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());
}
}
}
希望您能提供帮助,并在此先感谢:)
解决方案
推荐阅读
- html - 用户退出时清除对受保护站点的访问
- python - 在线性回归截距中出现负值?
- c - 是否可以使用 LD_PRELOAD 在挂钩中使用回溯?
- c# - 当我添加断点并且代码停止并将鼠标悬停在该行上时,为什么它不显示文本?
- node.js - 收到错误“数字信封例程”,原因:“不支持”,代码:“ERR_OSSL_EVP_UNSUPPORTED”
- r - 将参数传递给使用 dplyr R 的函数内的回归模型
- amazon-web-services - 如何在现有的 dynamodb 表上创建 2017.11.29 版本的全局表和数据?
- java - KafkaConsumer visibility across threads
- amazon-web-services - CloudWatch 警报 - 异常检测
- php - 使用 laravel 8 仅验证部分工作