Unity3D 中的程序后台運行


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有內容顯示了:

說明后台還是可以處理數據的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM