/// <summary> /// Delays the function until the next frame /// </summary> /// <param name='method'> /// Method. /// </param> public static void Skip(DelayedDelegate method, int skipFrames) { PreAdd(); delayedDelegates.Add(method); delayedDelegatesTime.Add(0); delayedDelegatesRealtime.Add(false); delayedDelegatesFrame.Add(Time.frameCount + skipFrames); }
public static void Add(DelayedDelegate method, float delay, bool realTime) { PreAdd(); delayedDelegates.Add(method); delayedDelegatesTime.Add(Time.fixedTime + delay); delayedDelegatesRealtime.Add(true); delayedDelegatesFrame.Add(0); }
public static void RemoveAll(DelayedDelegate method) { for (int x = delayedDelegates.Count - 1; x >= 0; x--) { if (delayedDelegates[x] == method) { delayedDelegates.RemoveAt(x); delayedDelegatesTime.RemoveAt(x); delayedDelegatesFrame.RemoveAt(x); delayedDelegatesRealtime.RemoveAt(x); } } }
public static void RunAll(DelayedDelegate method) { for (int x = delayedDelegates.Count - 1; x >= 0; x--) { if (delayedDelegates[x] == method) { delayedDelegatesTime[x] = Time.fixedTime; delayedDelegatesRealtime[x] = false; delayedDelegatesFrame[x] = 0; } } DelayedDelegates.RunDelegates(); }