Are co-routines essentially a new thread?

I’ve been doing some testing of co-routines for specific tasks in my game however I have noticed that if I call the co-routine and don’t find a way to “state” out the Update method BOTH methods are run simultaneously.

This means if I need to run some sort of pseudo animation and I don’t want to game object to update I have to have a bunch of booleans to prevent the Update method from calling while my co-routine is running. I assume this is because the co-routine is in it’s own thread or the game knows that it was running it and to call it again.

Used in the above scenario is there a way once you call a co-routine to have it ignore Update methods or is stating it out with booleans the only way to achieve this?

Coroutines are not threads. Coroutines and Update both execute on the main thread. If it helps, you can think of them more like a separate update loop (or time-splicing) with extra features, like yielding for specific times. Also if you disable the GameObject then it’s Update loop will stop being called, but the coroutine will continue. I won’t be able to explain this well, but others can and have! If you search around for Coroutine and Threading or something similar, you’ll find much clearer and in-depth explanations.

http://answers.unity3d.com/questions/180243/threading-in-unity.html

http://answers.unity3d.com/questions/36690/mechanics-of-coroutines.html

http://answers.unity3d.com/questions/357033/unity3d-and-c-coroutines-vs-threading.html

http://stackoverflow.com/questions/16951904/is-coroutine-a-new-thread-in-unity3d