Never use Coroutines.
This will greatly improve how you solve problems, especially in a game engine, and avoid needless garbage creation, garbage collection and slow callings and other issues relating to interfaces and coroutines.
It will also mean you program faster and simpler, and it's easier to think about and reason about what's doing what, where, when, why and how.
Coroutines are an addictive drug that should be avoided as though they have no benefits. Because they have no benefits over thinking better about your program and writing it better.
Once you start using coroutines it's a bit like putting cream and sugar in your coffee. You'll always add a bit more of each as they somewhat go together, and it all seems to be enhancing things.
You'll eventually even compromise on coffee quality because its flavours no longer seem all that important. You've become addicted to dairy, sugar and coffee, not just caffeine.
You'll begin drinking too much, cause it goes down so easy now that you've mastered the recipe. It tastes so right it can't be wrong. But you'll be restless, stressed and not sleeping well, odd bits of fat will show up on your body and you'll be irritable among those you love most.
What seemed like a solution has become the problem. Then the really big issues begin showing up, in your health and mental well being.
All this can be avoided by simply drinking green tea and never using coroutines.
Because the price you pay later, for becoming a coffee addict, simply isn't worth it.
Ever.