OnSceneLoaded在场景开始时未调用

问题描述 投票:0回答:1

我很难理解为什么在调用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;
    }
c# unity3d delegates scene
1个回答
0
投票

我有同样的问题。通过不使用我的GameManager中的“唤醒”功能来修复它。不知道为什么这样做。

© www.soinside.com 2019 - 2024. All rights reserved.