In my GameManager script, I instantiate a player game object, and call another method like this:
void Start()
{
Debug.Log("GameManager Start() called...");
Instantiate(player, Vector3.zero, Quaternion.identity);
InitNewLevel();
}
void InitNewLevel()
{
Debug.Log("GameManager InitNewLevel() called...");
}
In my Player script, I have this:
void Start()
{
Debug.Log("Player Start() called...");
}
I was expecting Player.Start() to be called after the Instantiate(player, Vector3.zero, Quaternion.identity); line, and before the InitNewLevel(). However, if I look at my debug log output, I see this:
GameManager Start() called...
GameManager InitNewLevel() called...
Player Start() called...
Why do my methods execute in this order? Why does Player.Start() get called after GameManager.InitNewLevel?