You’re telling me that LoadSceneAsync(sceneToLoad) loads a different scene than LoadScene(sceneToLoad)? You do know, that’s impossible, right?
Are there any errors along the way?
Let’s add some Debugs.
private IEnumerator LoadMainGameScene()
{
if (sceneToLoad < 0)
{
Debug.LogError($"LoadMainGameScene scene index {sceneToLoad} is not valid");
yield break;
}
if(transform.parent !=null) Debug.LogError($"This GameObject is not a root scene object, and will not be DontDestroyOnLoad");
DontDestroyOnLoad(gameObject);
Debug.Log($"Preparing to Fade");
Fader fader = FindObjectOfType<Fader>();
yield return fader.FadeOut(fadeOutTime);
Debug.Log($"Faded out, saving");
savingWrapper.Save();
Debug.Log($"Loading new scene {sceneToLoad}");
yield return SceneManager.LoadSceneAsync(sceneToLoad);
Debug.Log($"Scene loaded, preparing to Restore");
savingWrapper.Load();
Debug.Log($"Restore complete, fading in");
yield return fader.FadeIn(fadeInTime);
Debug.Log($"My job is done here. Enjoy the new scene");
Destroy(gameObject);
}
You are in the new level, by the way. I can tell because you have a debug.Log in the console about assigning a patrol path to Enemy 3(Clone).
Oooh… one more thing to check… The Mover component will be reporting your position based on where it was in the Creation scene. Remove the Fighter, Mover, and PlayerController from character in the Character Creation scene so that these components do not interact nor get saved while in the Character Creation scene. This way you won’t get a restore to the middle of an apparent blizzard in Yukon territory.