c# - 如何异步执行 WaitUntil?
问题描述
我能在网上找到await
的所有内容async
都是教我如何“等待一段时间”,这不是我想要的。
我希望它等到满足某个条件。
只是乐乐
yield return new WaitUntil(()=>conditionIsMet);
在Coroutine
.
我想做类似的事情
await Task.WaitUntil(()=>conditionIsMet);
这样的事情可能吗?
有人可以这么好心并帮助我吗?
非常感谢您的帮助。
解决方案
您可以使用 UniTask 插件,它为 Unity 提供了高效的免分配异步/等待集成。
它有很多功能,而且很容易使用。
首先从这里下载它,然后将它包含在您的项目中并像这样使用它:
using Cysharp.Threading.Tasks;
using UnityEngine;
public class Test : MonoBehaviour
{
bool _condition;
// Start is called before the first frame update
void Start()
{
_ = ProcessAsyncTask();
}
public async UniTask ProcessAsyncTask()
{
await UniTask.WaitUntil( ()=> ConditionResult());
}
public bool ConditionResult()
{
// _condition
return _condition;
}
}