微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unity3D 中的程序后台运行

原文链接http://www.cnblogs.com/WilliamJiang/archive/2013/04/02/2994901.html

Unity3D中程序后台运行,我原本认为当Application.runInBackground=false时,Socket保持连接,但是不接受数据,经过测试并非如此,当Application.runInBackground=false时,同样可以接受来自Socket发送的消息。下面是我测试的代码:

 UnitySocket clientSocket;
    string message = "";
    // Use this for initialization
    void Start () {
        XmlHelper helper = new XmlHelper();
        helper.LoadData(Application.dataPath+"/"+"Config.xml");
        clientSocket=new UnitySocket();
        clientSocket.OnDataByteIn += new UnitySocket.delDataByteIn(clientSocket_OnDataByteIn);
    }

    void clientSocket_OnDataByteIn(string data)
    {
        Debug.Log("Unity3d Rev:"+data);
        message = data;

        if (data == "aaa")
        {
            Application.runInBackground = false;
        }
        else if (data == "bbb")
        {
            Application.runInBackground = true;
        }
    }
    
    // Update is called once per frame
    void Update () {
    
    }

    void OnGUI()
    {
        GUI.Label(new Rect(0,0,200,30),message);
    }

 

测试结果:

Unity3d认设置runInBackground=false开启Unity3D 给socket发送数据,unity3d的OnGUI没显示任何内容,但是Socket是有数据产生的。只是OnGUI暂时停止了工作,

当我发送bbb到应用程序时:

GUI有内容显示了:

说明后台还是可以处理数据的。

转载于:https://www.cnblogs.com/WilliamJiang/archive/2013/04/02/2994901.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐