Are Update() and FixedUpdate() called in different threads?

http://unity3d.com/support/documentation/Manual/Update%20Order.html

suggests that FixedUpdate() and Update() are called independently, i.e. if the Update() Callback gets stuck for a second, it does not say FixedUpdate() would wait at all.
Thus, if I call the same method from Update() and from FixedUpdate(), would I need to synchronize (mutually exclude threads calling a critical code section)?

No, Unity scripts are all run in the same thread. If Update gets stuck for a second, the entire game will freeze for a second.

No, the whole scripting runs in one thread. The whole scripting API therefore isn’t thread-safe. You can use your own thread but you can’t access the API (unity checks the threadID).

FixedUpdate is not run in “fix” intervals. It’s a “fixed” Update. It just runs before Update (at least i guess, maybe right after update). It’s deltaTime value has a fix value but it doesn’t match the realtime. If you have only 30 fps and have a fixed rate of 60, FixedUpdate will be called twice before the next update. If you have 120 fps FixedUpdate is only called every second frame. The acumulated calls will reflect a 60fps rate but it’s just “corrected” :wink: