协程在使用中,带来的方便就不言而喻了
我们常用到的:
1 2 3 4 5 |
yield return null; yield return new WaitForSeconds( 1 ); yield return new WaitForEndOfFrame(); |
今天来给大家讲解协程两个非常好用的Wait
1 |
WaitUntil WaitWhile |
下面的范例已经很好的解释它们的用途了,使用的场景还是蛮多的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
using UnityEngine; using System.Collections; public class NewBehaviourScript : MonoBehaviour { int i = 0; int j = 0; // Use this for initialization void Start () { StartCoroutine( IWaitUntil() ); StartCoroutine( IWaitWhile() ); } // Update is called once per frame void Update () { if (Input.GetKeyDown(KeyCode.I)) { i = 1; } if ( Input.GetKeyDown( KeyCode.J ) ) { j = 1; } } IEnumerator IWaitUntil() { // 等待 结果为True时,继续执行下面指令 yield return new WaitUntil( () => i == 1 ); //yield return new WaitUntil( () => { return i == 1; } ); // 第二种写法 Debug.Log( "i = " + i + " WaitUntil" ); } IEnumerator IWaitWhile() { // 等待 结果为False时,继续执行下面指令 yield return new WaitWhile( () => j != 1 ); //yield return new WaitWhile( () => { return j != 1; } ); // 第二种写法 Debug.Log( "j = " + j + " WaitWhile" ); } } |
当你按下键盘“i”和“j”时,
- 本文固定链接: http://www.u3d8.com/?p=1159
- 转载请注明: 网虫虫 在 u3d8.com 发表过