Пример #1
0
    /// <summary>
    /// 弹出栈顶场景,并将当前场景销毁
    /// </summary>
    public void PopScene()
    {
        if (sceneStack.Count <= 0 || sceneStack.Last == null)
        {
            return;
        }

        SceneBase last    = currentScene;
        SceneBase bePoped = sceneStack.Last.Value;

        if (currentScene != null)
        {
            currentScene.OnDestroy();
        }

        if (bePoped != null)
        {
            bePoped.OnPoped(last);

            bePoped.LoadScene();
            bePoped.UpdateAudioState();
            bePoped.UpdateGlobalLight();

            currentScene = bePoped;
        }

        sceneStack.RemoveLast();
    }