using GFramework.Game.Abstractions.coroutine;
namespace GFramework.Game.coroutine;
///
/// 等待直到指定条件满足的协程等待指令
///
/// 用于判断等待条件是否满足的布尔函数委托
public class WaitUntil(Func predicate) : IYieldInstruction
{
///
/// 获取等待指令是否已完成
///
public bool IsDone { get; private set; }
///
/// 更新等待状态,在每一帧调用以检查条件是否满足
///
/// 自上一帧以来的时间间隔
public void Update(float deltaTime)
{
if (!IsDone) IsDone = predicate();
}
}