Coroutines in Unity
A coroutine is a function that has the ability to stop it’s execution and continue at the same point after a condition is met. To declare a Coroutine you have to use the type IEnumerator:
The IEnumerator allows us to use the following line of code, where yield is a keyword that tells Unity to wait one frame to continue with the execution.
We also can add a time delay using the WaitForSeconds() function as below.
Unity also provides other options like WaitUntil() to wait until a condition is true or WaitWhile() to wait until a condition is false.
The last thing you have to do in order to use your Coroutine is use the method StartCoroutine() and pass your Coroutine as a parameter.
There are a lot of uses for coroutines like a cooldown system for shooting, recharge shields or any mechanic that has to wait for time or conditions in your game.