12协程与加载网络端

2016-12-29  本文已影响12人  _谭小坤
如何通过网络端下载一些资源,看完下面的内容,你会有所了解.
从网络端获取资源
在上面的操作过程中其实显示的图片是从网络端获得过来的.点击了q键就会从网络端加载这个图片.
  首先,我们了解一下协程吧!协程不是线程,也不是异步执行的,在MainThread中执行.控制代码在特定的时候执行.

协同程序可以和主程序并行运行,和多线程有点类似.协同程序可以用来实现让一段程序等待一段时间后继续运行的效果.

// Use this for initialization
    void Start () {

        print("789");
        StartCoroutine(WorkHard());//在StartCoroutine方法中执行。
        print("101112");
    }
    
    // Update is called once per frame
    void Update () {
    

    }

    IEnumerator WorkHard()//一个返回值为IEnumerator类型
    {

        print("123");
        yield return new WaitForSeconds(2f);//用yield return返回
        print("456");
    }

动态图的代码演示.

Texture2D t2d;
    public string Url;
    WWW www;//这是一个类
    // Use this for initialization
    void Start () {
        Url = "http://ww2.sinaimg.cn/mw240/005OPYkojw1etn14eqlj8j30go0m8ab3.jpg";//网络上的图片资源
    }
    
    // Update is called once per frame
    void Update () {
        if (Input.GetKeyDown(KeyCode.Q))
        {
            StartCoroutine(GetWWW());
        }
    
    }

    IEnumerator GetWWW()
    {
        www = new WWW(Url);
        yield return www;
        print("返回数据成功");
        t2d = www.texture;//获取图片资源

    }
    private void OnGUI()
    {
        GUILayout.Label(Url);
        GUILayout.TextArea(""+www);
        GUILayout.Label(""+www);
        GUI.DrawTexture(new Rect(100,100,100,100),t2d);//绘制图片的位置和大小
    }

上一篇下一篇

猜你喜欢

热点阅读