negitamago
2/5/2019 - 11:41 AM

ステージのシーンを Additive で読み込む

ステージのシーンを Additive で読み込む

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

/// <summary>
/// ステージのシーンをAdditiveで読み込む
/// 
/// 読み込むシーンの指定は、あらかじめ作っておいたEnumで行う
/// https://gist.github.com/negitamago/79688071f55e0a0537e2deac00f3102c
/// </summary>
public class SceneLoader : MonoBehaviour
{
    [SerializeField] bool useSceneIndex = true;

    // 読み込むシーンを記憶する static フィールド
    public static SceneNameEnum SCENE_INDEX = SceneNameEnum.Stage1;

    // インスペクターから読み込むシーンを指定する
    [SerializeField] SceneNameEnum loadSceneName = SceneNameEnum.Stage1;

    private void Awake ()
    {
        // static フィールドに記憶された sceneIndex を使ってロードする
        if ( useSceneIndex )
        {
            LoadScene ( SCENE_INDEX );
        }
        // インスペクターから指定されたシーンをロードする
        else
        {
            LoadScene ( loadSceneName );
        }
    }

    private void LoadScene ( SceneNameEnum loadScene )
    {
        if ( loadScene == SceneNameEnum.Manager )
        {
            Debug.Log ( "CANT LOAD SELF" );
        }
        else
        {
            SceneManager.LoadScene ( loadScene.ToString (), LoadSceneMode.Additive );
        }
    }
}