How efficient is Update() vs Update via a Manager vs Coroutines for iOS Deployment?

HI All

I am trying to decide whether I should update multiple entities (such as enemies) in game each in their own Update() method, or whether it is worth having a master update against which each entity is registered and for the master update to update each entity in its update, or whether each entity should run its own Coroutine to do updating, perhaps only for certain things such as moving from one point to another - presumably running a Coroutine for every frame would be no less efficient than running Update()? Perhaps easier to yield and continue however?

I’m developing for iOS so trying to use the best approach now rather than have to retrofit later. Currently I have a mix of Update(), FixedUpdate() and Coroutines.

Interested to hear what other people are doing and whether they’ve seen or know about particular performance considerations between these options or if anyone who knows the deeper workings can enlighten me?

Thanks a lot!

Update is for things that happen every single frame. FixedUpdate is for physics. Coroutines are for everything else (InvokeRepeating can also be useful). Whether you should have a “master Update” depends on the number of objects; if it’s just a few, it’s not worth the extra development time.

I don’t have experience with IOS but I run few tests regarding particle system and coroutines vs updates and it always depends on the case. You can find my observations here