UniTask替换协程IEnumerator-01
使用UniTask替换协程函数的要点是,一个IEnumerator函数对应一个async方法,不可多!本质上是async替换了IEnumerator。
例如我们需要把下面的协程改为UniTask
private IEnumerator Test1()
{
yield return new WaitForSeconds(5);
Debug.Log("IEnumerator WaitForSeconds 5");
}
可以改为
public async UniTask Test2()
{
await UniTask.WaitForSeconds(5);
Debug.Log("UniTask WaitForSeconds 5");
}
使用时注意,使用 _ = Test2(),不可用 await Test2();
private void Start()
{
_ = Test2();
Debug.Log("after WaitForSeconds 5");
}
否则Start方法也会被添加async关键字,标记成异步方法
private async void Start()
{
await Test2();
Debug.Log("after WaitForSeconds 5");
}
两种输出是截然不同的
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 一半!
评论
ValineDisqus