public void InternalWait(InternalWaitCallback internalWaitCallback, float?seconds = null) { var waitOption = new WaitOption(internalWaitCallback, seconds); waitOption.WaitFunc = InternalWaitFunction(waitOption); _internalWaits.Enqueue(waitOption); StartCoroutine(waitOption.WaitFunc); }
private IEnumerator InternalWaitFunction(WaitOption waitOption) { if (waitOption.WaitOneFrame) { yield return(0); } else { yield return(new WaitForSeconds(waitOption.Seconds)); } waitOption.WaitCallback(); _internalWaits.Dequeue(); // Debug.Log(__utils.DebugQueue<WaitOption>(_internalWaits, "_internalWaits")); }