Exemplo n.º 1
0
    /// <summary>
    /// シーンロード
    /// </summary>
    private static void LoadSceneAsync(SceneDataPackBase dataPack)
    {
        //Header非表示 ※次のシーンでも表示が続くなら非表示にしない方が良いか?
        SharedUI.Instance.HideHeader();

        //ロード開始
        SceneManager.LoadSceneAsync(dataPack.toSceneName).completed += (op) =>
        {
            //シーン取得
            currentSceneName = dataPack.toSceneName;
            currentScene     = SceneManager
                               .GetSceneByName(currentSceneName)
                               .GetRootGameObjects()
                               .Select(g => g.GetComponent <SceneBase>())
                               .First(s => s != null);

            if (IsAutoHideLoading)
            {
                //シーン移動アニメーション終了
                SharedUI.Instance.HideSceneChangeAnimation();
            }

            //ロード完了通知
            IsLoading = false;
            currentScene.OnSceneLoaded(dataPack);
        };
    }
Exemplo n.º 2
0
    public void EnterScene(SceneBase scene)
    {
        if (CurrentScene != null)
        {
            CurrentScene.OnSceneWillUnload();
            CurrentScene.OnSceneUnloaded();
        }

        CurrentScene = scene;
        CurrentScene.OnSceneWillLoad();
        CurrentScene.OnSceneLoaded();
    }