unity下的www类

    最近在写做一个项目,一个关于unity3d的神奇的项目。对√,非常神奇。然后用到了一个类 www ,该类用来加载外部图片或文件的。很好很强大。

    不过在unity内部中有一个“很棒的”限定,引用www类函数类型必须为 IEnumerator 类型的。嗯?这是什么,不会问百度,度娘告诉我们,IEnumerator 是所有泛型枚举数的基接口,很好很强大,然而继续翻看百度我们发现,这东西不是unity中的,是c#中一个接口,迭代器知道吗,就是这个东西。

     引用一下其他牛人的解释 http://blog.csdn.net/byondocean/article/details/6871881 会发现,foreach的底层其实就是用迭代器实现的。

     很好很强大,然而这跟我们用www类又有什么关系呢。还是 too young too simple,unity中www调用函数类型必须为IEnumerator,于是我们就用呗。

     然后,就发现了yield return这个坑,这是啥!!!what!!!哦,这是迭代器的返回类型,也就是说如果你用了IEnumerator这东西,每次的返回值都要用yield return

     好,我们改,于是将所有的return改完之后,脚本写完了。3 2 1 GO~

     。。。接下来,就出现了让我纠结了2天的问题。IEnumerator函数要用StartCoroutine调用!要用StartCoroutine调用!要用StartCoroutine调用!重要的事情说三遍。

     来接下来我们看看StartCoroutine这是个啥东西,看中文翻译 协同 。嗯,很容易让我们想到线程什么的,大概意思也是那个样子的,但这个是编译器级别的,而线程是操作系统级别的,嗯,不是一个档次的,当然他们的作用是一样的。 StartCoroutine这个东西详情请见 http://www.cnblogs.com/xpvincent/archive/2013/07/13/3188257.html

     于是,通过3天的艰苦奋斗,我知道了

      要引用www类加载外部资源,先定义IEnumerator类型的函数,并且函数中用yield return返回值,函数写好之后,调用要用StartCoroutine(函数名)调用。



以上。

    

你可能感兴趣的:(unity)