如何通过s从python向Unity发送和接收numpy数组

2024-09-30 02:26:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在python程序和Unity3D之间发送python数组。 下面是发送字符串消息的python部分:

#send the message

import socket

UDP_IP = "127.0.0.1"
UDP_PORT = 5065

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

msg = "Hello word!"

sock.sendto(msg, (UDP_IP, UDP_PORT))


#receive the message in Unity (C-sharp)

IPEndPoint anyIP = new IPEndPoint(IPAddress.Parse("0.0.0.0"), port);

byte[] data = client.Receive(ref anyIP); 

string text = Encoding.UTF8.GetString(data);

我知道我可以将numpy数组转换为字符串格式,并将其解析为在Unity中浮动。有没有其他优雅的方式来发送和接收numpy数组而不是字符串?在


Tags: the字符串ipnumpymessagedataportmsg
1条回答
网友
1楼 · 发布于 2024-09-30 02:26:08

由于numpy的ndarray是一个二进制结构,因此需要一种方法在Python中序列化它,并在C#中反序列化。在

对于序列化,可以使用^{}。要反序列化,必须注意数据类型(double、int等)和机器的Endianess(little或big)。在

另外,如果传递的是高维数组,请注意ndarray.tobytes()的“C”与“Fortran”功能。在

例如,在C#中,可以使用Buffer.BlockCopy()将字节数组反序列化为一个双精度数组,请参见例如this问题。在

免责声明:我自己没有尝试过以上方法。在

相关问题 更多 >

    热门问题