/// <summary> /// Unregist an IResumable which update by Application /// </summary> /// <param name="c"></param> public void UnRegistApplicationExecuter(IResumable c) { if (applicationExecutor.Contains(c)) { applicationExecutor.Remove(c); } }
public void RemoveFromUpdateExecuter(IResumable c) { if (gamePlayUpdateExecuter.Contains(c)) { gamePlayUpdateExecuter.Remove(c); } }
/// <summary> /// Regist an IResumable which update by Application /// </summary> /// <param name="c"></param> public void RegistApplicationExecuter(IResumable c) { if (!applicationExecutor.Contains(c)) { applicationExecutor.Add(c); } }
public void RemoveFromUpdateExecuter(IResumable c) { if (!(gamePlayUnpauseUpdateExecuter.Contains(c) || removeUpdateExecuterCache.Contains(c))) { removeUpdateExecuterCache.Add(c); } }
public void AddToUpdateExecuter(IResumable c) { if (!gamePlayUpdateExecuter.Contains(c)) { gamePlayUpdateExecuter.Add(c); } }
public void AddToUpdateExecuter(IResumable c) { if (!(gamePlayUnpauseUpdateExecuter.Contains(c) || addUpdateExecuterCache.Contains(c))) { addUpdateExecuterCache.Add(c); } }
public static IEnumerator Join(IResumable resumable) { resumable.Resume(Coroutine.Delta); while (!resumable.Finished) { yield return(null); resumable.Resume(Coroutine.Delta); } }
/// <summary> /// Resume a resumable until the condition is met. /// </summary> /// <param name="resumable">The resumable.</param> /// <param name="condition">Condition delegate. It will be evaluated every before resuming.</param> /// <returns></returns> public static IEnumerator JoinWhile(this IResumable resumable, Condition condition) { if (!condition()) { resumable.Resume(Coroutine.Delta); } while (condition()) { yield return(null); resumable.Resume(Coroutine.Delta); } }
/// <summary> /// Resume a resumable until it is finished or time is up /// </summary> /// <param name="resumable">The resumable.</param> /// <param name="wait_time">Time to wait for resuming the resumable.</param> /// <returns></returns> public static IEnumerator TimedJoin(this IResumable resumable, float waitTime) { if (waitTime > 0 && !resumable.Finished) { resumable.Resume(Coroutine.Delta); } while (waitTime > 0 && !resumable.Finished) { yield return(null); waitTime -= Coroutine.Delta; resumable.Resume(Coroutine.Delta); } }
public void Add(IResumable resumable) { _executor.Add(resumable); }
public static IEnumerator Join(this IResumable resumable) { return(Coroutine.Join(resumable)); }
public void Add(IResumable resumable) { _resumables.Add(resumable); }