What is the difference between letting the objects run their own update functions during run time, versus, using a Game Manager to call their "update" functions during run time? Is there any efficiency cost of using a GameManager Class to run the game rather than just using the default component based system that Unity provides?
// Update Function for the Game Manager Class
void Update()
{
// Check for Input and Assign values to Player
// Update Player
// Update Environment
// Update so on...
}
If you mean looping through all objects in a single Update function as opposed to having each object use its own Update function, then yes, there is overhead involved in an Update call that you can eliminate by consolidating them.
However, it's questionable whether you would call this "improved efficiency". It's likely your code will become more complicated, for one, which means more chance for bugs. It's possible you're not CPU-limited in the first place, or that the Update calls are contributing a small enough amount that "fixing" this won't actually improve the framerate at all. Also, it's possible that you're better off not using Update in the first place anyway, and would find coroutines or other methods like InvokeRepeating more effective.