Question: how do unity coroutines work?
Answer: Coroutine is a Unity type that is used to create parallel actions returning a IEnumerator to do so. Coroutines are ways to write code that says "wait at this line for a little." To be more precise, WaitForSeconds and "wait until the next frame" (yield return null) are the commands that make code wait at one spot.