If you are using Coroutines in Unity3d, you probably know about WaitForSeconds, WaitForEndOfFrame and WaitForFixedUpdate classes. Here is an example:
public IEnumerator CoroutineAction() { // do some actions here yield return new WaitForSeconds(2); // wait for 2 seconds // do some actions after 2 seconds }
But sometimes you need to wait for some amount of frames before executing some action. I have created simple class to help you with that:
public static class WaitFor { public static IEnumerator Frames(int frameCount) { if (frameCount <= 0) { throw new ArgumentOutOfRangeException("frameCount", "Cannot wait for less that 1 frame"); } while (frameCount > 0) { frameCount--; yield return null; } } }
Now you can wait for frames:
public IEnumerator CoroutineAction() { // do some actions here yield return StartCoroutine(WaitFor.Frames(5)); // wait for 5 frames // do some actions after 5 frames }