我很难理解为什么在调用OnEnable时没有调用SceneManager.sceneLoaded += OnSceneLoaded;
。我做错了什么吗?我正在通过在控制台中寻找来自Debug.Log("Current scene index is: " + scene.buildIndex.ToString());
的回报来进行测试,但事实并非如此。任何帮助,将不胜感激!谢谢。
// called first
void OnEnable()
{
Debug.Log("OnEnable called");
SceneManager.sceneLoaded += OnSceneLoaded;
}
// called second
void OnSceneLoaded(Scene scene, LoadSceneMode mode)
{
Debug.Log("Current scene index is: " + scene.buildIndex.ToString());
switch (scene.buildIndex)
{
case 1: // Starting Scene
StartingSceneIn();
break;
case 2: // Selection Scene
SelectionSceneIn();
break;
case 3: // Coloring Scene
ColoringSceneIn();
break;
case 4: // Preview Scene
StartCoroutine(PreviewSceneIn());
break;
default:
break;
}
}
// called when the game is terminated
void OnDisable()
{
Debug.Log("OnDisable");
SceneManager.sceneLoaded -= OnSceneLoaded;
}
我有同样的问题。通过不使用我的GameManager中的“唤醒”功能来修复它。不知道为什么这样做。