예제 #1
0
    public AsyncOperation PreGamescene; //游戏的预加载场景


    /// <summary>
    /// 预加载游戏场景
    /// </summary>
    /// <param name="scene"></param>
    public void PreloadScene(ESCENE scene)
    {
        if (UnityEngine.SceneManagement.SceneManager.GetSceneByName(scene.ToString()).name == null)
        {
            PreGamescene = UnityEngine.SceneManagement.SceneManager.LoadSceneAsync(scene.ToString(),
                                                                                   UnityEngine.SceneManagement.LoadSceneMode.Additive);
            PreGamescene.allowSceneActivation = false;
        }
    }
예제 #2
0
    public void LoadSceneSingle(ESCENE scene)
    {
        leavingScene  = enteringScene;
        enteringScene = scene;

        sceneManagerHelper.leavingScene  = leavingScene;
        sceneManagerHelper.enteringScene = enteringScene;
        Leave();
        UnityEngine.SceneManagement.SceneManager.LoadScene(scene.ToString(), UnityEngine.SceneManagement.LoadSceneMode.Single);
    }
예제 #3
0
    /// <summary>
    /// 加载场景
    /// </summary>
    /// <param name='scene'>场景</param>
    public void LoadScene(ESCENE scene)
    {
        leavingScene  = enteringScene;
        enteringScene = scene;

        sceneManagerHelper.leavingScene  = leavingScene;
        sceneManagerHelper.enteringScene = enteringScene;
        Leave();
        sceneManagerHelper.LoadLevel(scene.ToString());
    }
예제 #4
0
    /// <summary>
    /// 进入场景
    /// </summary>
    private void Enter()
    {
        if (CurrentScene == EnteringScene)
        {
            return;
        }

        //if (PlayBack_1.PlayBackData.isComePlayBack)
        //{
        //    return;
        //}

        if (OnEnterScene != null)
        {
            OnEnterScene(this);
        }

        CurrentScene = EnteringScene;
        sceneManagerHelper.currentScene = CurrentScene;
        float time = Time.realtimeSinceStartup - timer;

        DEBUG.LogTracer("SceneManager 加载场景: " + CurrentScene.ToString() + " 花费了 [ " + time + " ] 秒");
    }