美文网首页
线程协程WWW

线程协程WWW

作者: fooliker | 来源:发表于2017-04-28 20:07 被阅读0次

    线程:Thread

    // 新线程-1 调用静态方法

    Thread m_Thread_1 = new Thread(M_Thread.StartThreadFunc);

    m_Thread_1.Start();// 开始执行新线程

    // 新线程-2 调用实例方法

    Thread m_Thread_2 = new Thread(new M_Thread().OtherThreadFunc);

    m_Thread_2.Start();

    // 以下2中方法 处理 比较简单内容的多线程

    // 匿名方法

    Thread m_Thread_3 = new Thread(delegate () { Debug.Log("新线程-3 匿名函数 开始执行"); });

    m_Thread_3.Start();

    // Lambda表达式

    Thread m_Thread_4 = new Thread(() => { Debug.Log("新线程-4 Lambda 开始执行"); });

    m_Thread_4.Start();

    协程:

    Unity的协程系统是基于C#的一个简单而强大的接口,协程就是可以把一个方法拆分成多次执行的一种接口

    简单使用

    IEnumerator SomeCoroutineFunc() {

    Debug.Log("协程-1");

    // yield 关键字 遇到yield的时候 协程方法将交出执行权

    // yield return 0;// 延迟返回1帧  执行本函数外面的代码 yield return null 等同与yield return 0;

    // 等待约定的时间 等待5秒

    yield return new WaitForSeconds(5f);// 5秒后拿回执行权

    // 本帧结束后继续

    // yield return new WaitForEndOfFrame(); 

    如果不是截屏或相关的操作,就没必要用WaitForEndOfFrame 反之,抓取屏幕信息时则会报错

    所以延迟一帧要用yield return null,减少GC开销

    Debug.Log("约定时间过后 协程继续执行 没想到吧 我又回来了!");

    }

    调用方法-1

    StartCoroutine(SomeCoroutineFunc());

    调用方法-2 

     StartCoroutine("SomeCoroutineFunc");

    停止协程 调用的地方 逻辑处理完毕后调用

    StopCoroutine("SomeCoroutineFunc"); 仅仅能停止使用调用 字符串方式 开启的协程

    如果想停止带几个参数的协程 必须先将这个协程方法用Coroutine接收一下 再去停止

    Coroutine a = StartCoroutine(SomeCoroutineFunc());

    StopCoroutine(a);


    一些注意事项:

    WaitfForSecond 是受到Time,timeScale影响的,如果将其设置为0,那么协程就无法执行下去了。

    不过yield return null不会受到影响,因为每帧会执行,只是Time.deltaTime为0了。

    网上的博客。

    WWW

    换图片例子:

    string url = "http://wx2.sinaimg.cn/thumb300/714a59a7ly1ff0abbyb9cj21400qo10g.jpg";    

    RawImage _rawImage;    

    IEnumerator ShowTexture() {       

     WWW www = new WWW(url);       

     yield return www;// 等待这个加载完成 在执行下一步       

     _rawImage = transform.GetComponent();

    _rawImage.texture = www.texture;

    }

    WWW 常用属性:

    texture 下载到的图片

    audioClip 下载到的音频

    movie 下载到的视频

    bytes 下载到的比特数组

    text 下载到的文字

    isDone 下载是否完毕

    progress 当前下载进度

    url 下载地址

    相关文章

      网友评论

          本文标题:线程协程WWW

          本文链接:https://www.haomeiwen.com/subject/gosszttx.html