void ProcessYield(IYieldable yieldable) { if (yieldable == null && yieldable.IsFinished) { return; } currentCoroutine.Push(yieldable); if (yieldable is IRunnable runnable) { using (new RunnableContextSection(this, runnable)) { RunRunnable(runnable); } } // TODO: Yieldable 타입에 따른 처리 // WaitForAnimationEnd // WaitForFixedUpdateEnd }
public YieldWork(IYieldable yieldable) { this.yieldable = yieldable; }
IEnumerator QuitAfterYieldable(IYieldable yieldable) { yield return(yieldable); ExitState(); }
public void Push(IYieldable yieldable) { yieldableStack.Add(yieldable); }