I thought I understood Unity’s execution order and this lesson made me question everything I thought I knew.
There are a few things Sam said that I was unable to substantiate with any Unity documentation so I’m wondering if I just misunderstood what Sam was trying to say here.
At 3:04 I understand him saying that coroutines run after all Awakes but before all Starts but Unity docs show that all the Coroutine stuff happens after Update (and thus well after Start). What nuance am I misunderstanding in Sam’s explanation?
At 6:10 I understand him saying that SceneManager.LoadSceneAsync() runs after all Awakes but before all Starts. But I can’t find any of that info in the Unity docs on LoadSceneAsync(). But that doesn’t even seem to make sense since you could be calling LoadSceneAsync during Update() and well after Awake and Start(). What’s Sam trying to say here???
So now that has me wondering when do the Awake() and Start() methods in the scene to be loaded by LoadSceneAsync() get called? Since LoadSceneAsync happens in the backgound, it sounds like Awake and Start for the new scene get called in parallel with Update() methods running on the current scene. But this again sounds inconsistent with what I thought I heard Sam say.
What am I missing? I feel like I misunderstood something really basic here.