有时我们想在协程里 加入回调方法,又想在回调方法执行后,在协程里执行一些其它代码。这时我们就需要使用 yield return new WaitUntil() 来解决这个问题。
上代码:
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 |
using UnityEngine; using System.Collections; using System; public class Test : MonoBehaviour { void Start() { StartCoroutine(ITest()); } IEnumerator ITest() { Debug.Log(1); bool isDone = false; StartCoroutine(Timer(3, (string _str) => { Debug.Log(_str); isDone = true; })); yield return new WaitUntil(() => { return isDone; }); Debug.Log(2); } /// <summary> /// t秒后回调 /// </summary> IEnumerator Timer(float _t, Action<string> _ac) { yield return new WaitForSeconds(_t); _ac("传递过去"); } } |
- 本文固定链接: http://www.u3d8.com/?p=812
- 转载请注明: 网虫虫 在 u3d8.com 发表过
mark,以后大概会用到