我有一个unity项目,我想将对象的位置连同其他一些数据一起从它发送到python项目,该项目将具有神经网络,然后将输出发送回unity。
我需要从单位发送到python的数据是对象(x,y,z)的位置,一些布尔值可能是一些字符串,神经网络的输出将是(w,a,s,d ),我所做的是我将数据写入了一个文本文件,而python从该文件读取了数据,但是这种方式将始终产生错误,因为python将需要在c#写入时读取文件,这将产生IO错误,另一种方式是使用剪贴板,但这对于少量数据将是可行的,但对我而言不是很好。
c#代码
void Update()
{
System.IO.StreamWriter saveFile = new System.IO.StreamWriter("Reading/Positions/PlanePos.txt", false);
saveFile.Write(this.transform.position);
saveFile.Close();
System.IO.StreamWriter saveFile2 = new System.IO.StreamWriter("Reading/Positions/done.txt", false);
if (this.transform.position.y> 2)
{
leftground = true;
}
if (leftground)
{
if (this.transform.position.y < 2)
{
saveFile2.Write("done");
saveFile2.Flush();
dones.text = "done";
}
else
{
saveFile2.Write("air");
saveFile2.Flush();
dones.text = "air";
}
}
else
{
saveFile2.Write("ground");
saveFile2.Flush();
dones.text = "ground";
}
saveFile2.Close();
}
Python代码:
void Update()
{
System.IO.StreamWriter saveFile = new System.IO.StreamWriter("Reading/Positions/PlanePos.txt", false);
saveFile.Write(this.transform.position);
saveFile.Close();
System.IO.StreamWriter saveFile2 = new System.IO.StreamWriter("Reading/Positions/done.txt", false);
if (this.transform.position.y> 2)
{
leftground = true;
}
if (leftground)
{
if (this.transform.position.y < 2)
{
saveFile2.Write("done");
saveFile2.Flush();
dones.text = "done";
}
else
{
saveFile2.Write("air");
saveFile2.Flush();
dones.text = "air";
}
}
else
{
saveFile2.Write("ground");
saveFile2.Flush();
dones.text = "ground";
}
saveFile2.Close();
}
i,除了像服务器之类的可以将数据从unity发送到python,反之亦然的方式(如服务器或其他可以执行此操作的方式)。