我需要做的是从一个调用的方法中获取 foreach 值private void ReceiveData()
并将它们发送到另一个方法void Update()
。如何在 C# 中做到这一点?
private void ReceiveData()
{
IPEndPoint remoteIP = new IPEndPoint(IPAddress.Parse("10.0.2.217"), port);
client = new UdpClient(remoteIP);
while (true)
{
try
{
IPEndPoint anyIP = new IPEndPoint(IPAddress.Any, 0);
data = client.Receive(ref anyIP);
int nIndex = 0;
foreach(SignalIndex si in xmlreader.cdpSignals)
{
x= ReadSingleBigEndian(data, si.index + 0);
y= ReadSingleBigEndian(data, si.index + 4);
z= ReadSingleBigEndian(data, si.index + 8);
alpha= ReadSingleBigEndian(data, si.index + 12);
theta= ReadSingleBigEndian(data, si.index + 16);
phi= ReadSingleBigEndian(data, si.index + 20);
// xmlreader.unityGameObjects[nIndex].transform.localPosition = new Vector3(x,y,z);
// xmlreader.unityGameObjects[nIndex].transform.Rotate(alpha,theta,phi);
}
}
catch (Exception err)
{
print(err.ToString());
}
}
client.Close();
}
void Update()
{
foreach(GameObject go in xmlreader.unityGameObjects)
{
go.transform.localPosition = new Vector3(x,y,z);
go.transform.transform.Rotate(alpha,theta,phi);
}
}
有 2 种方法,我需要从 ReceiveData() 获取 foreach 中的值并在方法 Update() 中实例化它们。ReceiveData() 中的 foreach 中的所有变量都是公共的,但在 Update() 中它们都取 0。