WaitUntil
takes
Func<bool>
,所以您可以简单地将其传递下去:
IEnumerator DoActionUponCoroutine(Func<bool> predicate, Delegate action, params object[] args)
{
yield return new WaitUntil(predicate);
action.DynamicInvoke(args);
yield return null;
}
你可能也更喜欢
Action
对于回调,这比
DynamicInvoke
:
IEnumerator DoActionUponCoroutine(Func<bool> predicate, Action action)
{
yield return new WaitUntil(predicate);
action();
yield return null;
}
还有一种使用泛型的方法
TState state
和一个
Action<TState>
回调以避免捕获上下文,但是。。。这是一个更高级的场景。