协程调用,是 Unity 中常用的一个技巧;
既然是 Junior Programmer 课程,这里我们也只能简单的去理解和总结一下。
1.使用场景 协程的使用场景是:
有个事情,我想下次再做;或:
有个事情,我想等会儿在做;或:
有个事情,我不想现在一次性做完;
如下可示意:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 void DoSomethingNextTime ( ) { yield return null ; } void DoSomethingDelay (float delay ) { yield return new WaitForSeconds (delay ) ; } void DoSomethingApart ( ) { yield return new WaitForSeconds (2.5f ) ; }
而调用的时候,需要使用 StartCoroutine() 来调用;
如下可示意:
1 2 3 4 5 6 StartCoroutine(DoSomethingNextTime()); StartCoroutine(DoSomethingDelay(0.5f )); StartCoroutine(DoSomethingApart());
以上。
2.稍许深入 协程常与循环结合,产生一个持续性渐变效果。
例如:
1 2 3 4 5 6 7 8 9 10 11 IEnumerator Fade ( ) { for (float ft = 1f ; ft >= 0 ; ft -= 0.1f ) { Color c = renderer.material.color; c.a = ft; renderer.material.color = c; yield return new WaitForSeconds (.1 f ) ; } }
以上。
3.尾注 可参考以下文档,深入了解协程:
以上。