• 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有内容显示了:

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

  • 相关阅读:
    元素对应赋值与列表生成器
    python装饰器
    python之闭包
    内置函数,重要的四个reduce,map,lambda,filter
    高阶函数,递归函数,内置函数
    函数作用域
    python函数
    集合
    python深浅拷贝以及数据在内存中储存方法
    Linux之ubuntu系统操作学习笔记
  • 原文地址:https://www.cnblogs.com/WilliamJiang/p/2994901.html
Copyright © 2020-2023  润新知