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

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

  • 相关阅读:
    DDD领域驱动设计的理解
    设计原则
    毫秒级的时间处理图片
    同步设施
    ASP.NET Core 中文文档
    Jenkins快速搭建持续集成
    刮刮卡
    网页WEB打印控件
    nginx+memcached+ftp上传图片+iis
    通过Jexus 部署 dotnetcore
  • 原文地址:https://www.cnblogs.com/WilliamJiang/p/2994901.html
Copyright © 2011-2022 走看看