using GFramework.Core.Abstractions.coroutine;
namespace GFramework.Core.coroutine;
///
/// 等待条件为假时继续执行的协程等待指令
///
/// 用于判断是否继续等待的布尔函数委托
public class WaitWhile(Func predicate) : IYieldInstruction
{
///
/// 获取当前等待指令是否已完成
///
public bool IsDone { get; private set; }
///
/// 更新等待状态
///
/// 时间增量
public void Update(float deltaTime)
{
// 当前未完成时,检查谓词条件来更新完成状态
if (!IsDone) IsDone = !predicate();
}
///
/// 重置等待指令状态
///
public void Reset()
{
IsDone = false;
}
}