private IEnumerator LoadLoadingScene(SceneNameList.SceneNameHolder sceneName){

		if(string.IsNullOrEmpty(sceneName.loadingSceneName)) yield break;

		this.status = Status.Prepare;
		Debug.Log(sceneName.loadingSceneName);

		this.loadOperation = sceneName.isAdditiveLoading ? SceneManager.LoadSceneAsync(sceneName.loadingSceneName,LoadSceneMode.Additive) : SceneManager.LoadSceneAsync(sceneName.loadingSceneName,LoadSceneMode.Single);

		yield return this.loadOperation;

		while(this.status == Status.Prepare){

			yield return null;
		}
	}
예제 #2
0
    static void CreateSceneList()
    {
        //資料 Asset 路徑
        string holderAssetPath = "Assets/Settings/";

        if (!Directory.Exists(holderAssetPath))
        {
            Directory.CreateDirectory(holderAssetPath);
        }

        //建立實體
        SceneNameList holder = ScriptableObject.CreateInstance <SceneNameList> ();

        //使用 holder 建立名為 dataHolder.asset 的資源
        AssetDatabase.CreateAsset(holder, holderAssetPath + "SceneList.asset");
    }
	private IEnumerator LoadTargetScene(SceneNameList.SceneNameHolder sceneName){

		this.status = Status.Loading;

		if(string.IsNullOrEmpty(sceneName.sceneName)){

			this.status = Status.None;
			yield break;
		}

		this.loadOperation = SceneManager.LoadSceneAsync(sceneName.sceneName,LoadSceneMode.Single);
		yield return this.loadOperation;

		this.status = Status.Complete;
	}
	private IEnumerator AsyncLoadScene(SceneNameList.SceneNameHolder sceneName){
//				Debug.Log("Start");
		yield return StartCoroutine(this.LoadLoadingScene(sceneName));

		yield return StartCoroutine(this.LoadTargetScene(sceneName));
	}