zoukankan      html  css  js  c++  java
  • 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有内容显示了:

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

  • 相关阅读:
    Spring+Springmvc+SpringJDBC+freemaker+Logback配置
    POJ1942+找规律
    HDU2955+DP+背包变形
    HDU1201+简单题
    HDU1288+枚举
    面试经验(转)
    HDU1864+dp+类似背包
    PKU1659+havelhakimi定理
    算法复杂度分析(摘)
    HDU3047+并查集
  • 原文地址:https://www.cnblogs.com/WilliamJiang/p/2994901.html
Copyright © 2011-2022 走看看