using GFramework.Core.Abstractions.coroutine; namespace GFramework.Core.coroutine; /// /// 表示一个等待条件为假时才完成的协程指令 /// /// 用于判断是否继续等待的条件函数,当返回true时继续等待,返回false时完成 public sealed class WaitWhile(Func predicate) : IYieldInstruction { private readonly Func _predicate = predicate ?? throw new ArgumentNullException(nameof(predicate)); /// /// 更新协程状态(此实现中为空方法) /// /// 时间增量 public void Update(double deltaTime) { } /// /// 获取协程指令是否已完成 /// 当谓词函数返回false时,表示条件不再满足,指令完成 /// public bool IsDone => !_predicate(); }