私がする必要があるのは、呼び出された1つのメソッドから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を取ります。