通过套接字Udp c#的Unity控制对象

时间:2014-10-01 02:49:05

标签: c# unity3d udp

我有一个统一的对象,我想使用visual studio 2012(c#)通过udp控制运动 我测试发送和接收聊天,已经成功了 我已经测试了移动对象ongui的脚本及其成功完全... 现在我想控制对象转换或从我从udp接收到的命令字符串转换但是没有移动的对象。

这是我收到的代码

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());
        }
    }
}

收到我发送的字符串但对象无法移动

1 个答案:

答案 0 :(得分:2)

首先,您必须检查“ speedloc”的值。如果它为null或零,则您的对象将不会移动。

另外,我建议您将这一行更改为

satelit.transform.Translate (speedloc,0,0 * Time.deltaTime);

satelit.transform.Translate (new Vector3(speedloc,0,0) * Time.deltaTime);