我无法理解为什么在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;
}
答案 0 :(得分:0)
我有同样的问题。 通过不使用我的GameManager中的“唤醒”功能来修复它。不确定为什么这样做。
答案 1 :(得分:0)
我通过使用以下命令使其工作;
UnityEngine.SceneManagement.SceneManager.sceneLoaded + = OnSceneLoaded;
有或没有唤醒方法..看来我们必须再次添加UnityEngine.SceneManagement。