Is there a way to instantiate gameobjects n seconds before the game starts?
Lets say that I have a scene which has a camera and a GUI. I click the GUI and it loads the game. Do I need to start instantiating the necessary gameobjects during that 'load up' scene? What if my gameobjects are prefabs that I have attached to scripts in my game scene?
Actually, Unity manages pretty much all the instantiation stuff for you. However, Unity also provides all means to handle stuff yourself if you wish to do so.
For example, you could start instantiating objects in your startup scene which then persist when you load your actual "game scene".
Another method you might be interested in: Application.LoadLevelAdditiveAsync(string levelName). You could use this to load the actual game level in the background, and then do some camera switching, for instance, to actually "start" the game.
Of course, as mentioned before, you'll have to do a lot of things that Unity usually does for your "automatically, under the hood" yourself. And how exactly you'd do that depends largely on your own needs and creativity.