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

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

  • 相关阅读:
    Delphi 实现C语言函数调用
    Delphi采用接口实现DLL调用
    select、poll、epoll之间的区别总结[整理]
    int 的重载
    qt 安装包生成2
    线程池的简单实现
    qt 安装包生成
    linux 下tftpf搭建
    2018C语言助教总结
    动态规划——最长子序列长度
  • 原文地址:https://www.cnblogs.com/WilliamJiang/p/2994901.html
Copyright © 2011-2022 走看看