C# 通过套接字Udp C实现统一控制对象#
我在unity中有一个对象,我想使用Visual Studio 2012(C#)通过udp控制移动。我已经测试了发送和接收聊天,并且已经成功了 我已经测试了MoveObjectOnGUI的脚本,它也很成功。现在,我想控制对象转换或转换,从udp接收得到的命令字符串,但对象没有移动 这是我收到的密码C# 通过套接字Udp C实现统一控制对象#,c#,unity3d,udp,C#,Unity3d,Udp,我在unity中有一个对象,我想使用Visual Studio 2012(C#)通过udp控制移动。我已经测试了发送和接收聊天,并且已经成功了 我已经测试了MoveObjectOnGUI的脚本,它也很成功。现在,我想控制对象转换或转换,从udp接收得到的命令字符串,但对象没有移动 这是我收到的密码 private void ReceiveData() { client = new UdpClient(port); while (true) { try
private void ReceiveData()
{
client = new UdpClient(port);
while (true)
{
try
{
// Bytes empfangen.
IPEndPoint anyIP = new IPEndPoint(IPAddress.Any, 0);
byte[] data = client.Receive(ref anyIP);
// Bytes mit der UTF8-Kodierung in das Textformat kodieren.
string text = Encoding.UTF8.GetString(data);
switch (text)
{
case "loc+x" :
{
satelit.transform.Translate (speedloc,0,0 * Time.deltaTime);
break;
}
case "loc-x" :
{
satelit.transform.Translate (-speedloc,0,0 * Time.deltaTime);
break;
}
}
// Den abgerufenen Text anzeigen.
print(">> " + text);
// latest UDPpacket
lastReceivedUDPPacket=text;
// ....
allReceivedUDPPackets=allReceivedUDPPackets+text;
}
catch (Exception err)
{
print(err.ToString());
}
}
}
我发送的字符串已收到,但对象无法移动。首先,您必须检查“speedloc”的值。如果为null或零,则对象无论如何都不会移动 另外,我建议您将这一行从
satelit.transform.Translate (speedloc,0,0 * Time.deltaTime);
到
“不起作用”不是问题描述。问题中的switch语句是否运行?对不起,我的英语很差
satelit.transform.Translate (new Vector3(speedloc,0,0) * Time.deltaTime);