2017-08-28 8 views
1

合計9シーンあります。すべてが「ビルド設定」に追加されています。 9のうち7つのシーンがロードされているが、私は他の2つのシーンをロードしようとすると、それが言い続けた:シーンは読み込んでいません

それはビルド設定に追加されていないか、AssetBundleを持っているのでシーン「SceneName」はロードできませんでしたロードされていません。シーンをビルド設定に追加するには、ファイル - >ビルド設定... UnityEngine.SceneManagement.SceneManager:LoadSceneAsync(String、LoadSceneMode)MoreMountains.CorgiEngine.c__Iterator0:MoveNext()(Assets/CorgiEngine/Common/Scripts /マネージャ/ LoadingSceneManager.cs:88)UnityEngine.MonoBehaviour:StartCoroutine(IEnumeratorを)MoreMountains.CorgiEngine.LoadingSceneManager:資産/ CorgiEngine /共通/スクリプト/管理者/ LoadingSceneManager.csでスタート()(:67)

Here is my "Scene In Build" Image

私は既にシーンマネージャにシーンを追加しましたが、このエラーは引き続き表示されます。私はそんなに試しました。問題を解決するのを手伝ってください。ここに私の「LoadingSceneManager」スクリプトです:

using UnityEngine; 
using UnityEngine.UI; 
using System.Collections; 
using System.Collections.Generic; 
using MoreMountains.Tools; 
using UnityEngine.SceneManagement; 

namespace MoreMountains.CorgiEngine 
{ 
public class LoadingSceneManager : MonoBehaviour 
{ 
    [Header("Binding")] 
    /// The name of the scene to load while the actual target scene is 
    loading (usually a loading screen) 
    public static string LoadingScreenSceneName="LoadingScreen"; 

    [Header("GameObjects")] 
    /// the text object where you want the loading message to be displayed 
    public Text LoadingText; 
    /// the canvas group containing the progress bar 
    public CanvasGroup LoadingProgressBar; 
    /// the canvas group containing the animation 
    public CanvasGroup LoadingAnimation; 
    /// the canvas group containing the animation to play when loading is complete 
    public CanvasGroup LoadingCompleteAnimation; 

    [Header("Time")] 
    /// the duration (in seconds) of the initial fade in 
    public float StartFadeDuration=0.2f; 
    /// the speed of the progress bar 
    public float ProgressBarSpeed=2f; 
    /// the duration (in seconds) of the load complete fade out 
    public float ExitFadeDuration=0.2f; 
    /// the delay (in seconds) before leaving the scene when complete 
    public float LoadCompleteDelay=0.5f; 

    protected AsyncOperation _asyncOperation; 
    protected static string _sceneToLoad = ""; 
    protected float _fadeDuration = 0.5f; 
    protected float _fillTarget=0f; 
    protected string _loadingTextValue; 

    /// <summary> 
    /// Call this static method to load a scene from anywhere 
    /// </summary> 
    /// <param name="sceneToLoad">Level name.</param> 
    public static void LoadScene(string sceneToLoad) 
    {  
     _sceneToLoad = sceneToLoad;     
     Application.backgroundLoadingPriority = ThreadPriority.High; 
     if (LoadingScreenSceneName!=null) 
     { 
      SceneManager.LoadScene(LoadingScreenSceneName); 
     } 
    } 

    /// <summary> 
    /// On Start(), we start loading the new level asynchronously 
    /// </summary> 
    protected virtual void Start() 
    { 
     _loadingTextValue=LoadingText.text; 
     if (_sceneToLoad != "") 
     { 
      StartCoroutine(LoadAsynchronously()); 
     } 
    } 

    /// <summary> 
    /// Every frame, we fill the bar smoothly according to loading progress 
    /// </summary> 
    protected virtual void Update() 
    { 
     LoadingProgressBar.GetComponent<Image>().fillAmount = MMMaths.Approach(LoadingProgressBar.GetComponent<Image>().fillAmount,_fillTarget,Time.deltaTime*ProgressBarSpeed); 
    } 

    /// <summary> 
    /// Loads the scene to load asynchronously. 
    /// </summary> 
    protected virtual IEnumerator LoadAsynchronously() 
    { 
     // we setup our various visual elements 
     LoadingSetup(); 

     // we start loading the scene 
     _asyncOperation = SceneManager.LoadSceneAsync(_sceneToLoad,LoadSceneMode.Single); 
     _asyncOperation.allowSceneActivation = false; 

     // while the scene loads, we assign its progress to a target that we'll use to fill the progress bar smoothly 
     while (_asyncOperation.progress < 0.9f) 
     { 
      _fillTarget = _asyncOperation.progress; 
      yield return null; 
     } 
     // when the load is close to the end (it'll never reach it), we set it to 100% 
     _fillTarget = 1f; 

     // we wait for the bar to be visually filled to continue 
     while (LoadingProgressBar.GetComponent<Image>().fillAmount != _fillTarget) 
     { 
      yield return null; 
     } 

     // the load is now complete, we replace the bar with the complete animation 
     LoadingComplete(); 
     yield return new WaitForSeconds(LoadCompleteDelay); 

     // we fade to black 
     GUIManager.Instance.FaderOn(true,ExitFadeDuration); 
     yield return new WaitForSeconds(ExitFadeDuration); 

     // we switch to the new scene 
     _asyncOperation.allowSceneActivation = true; 
    } 

    /// <summary> 
    /// Sets up all visual elements, fades from black at the start 
    /// </summary> 
    protected virtual void LoadingSetup() 
    { 
     GUIManager.Instance.Fader.gameObject.SetActive(true); 
     GUIManager.Instance.Fader.GetComponent<Image>().color=new Color(0,0,0,1f); 
     GUIManager.Instance.FaderOn(false,ExitFadeDuration); 

     LoadingCompleteAnimation.alpha=0; 
     LoadingProgressBar.GetComponent<Image>().fillAmount = 0f; 
     LoadingText.text = _loadingTextValue; 

    } 

    /// <summary> 
    /// Triggered when the actual loading is done, replaces the progress bar with the complete animation 
    /// </summary> 
    protected virtual void LoadingComplete() 
    { 
     LoadingCompleteAnimation.gameObject.SetActive(true); 
     StartCoroutine(MMFade.FadeCanvasGroup(LoadingProgressBar,0.1f,0f)); 
     StartCoroutine(MMFade.FadeCanvasGroup(LoadingAnimation,0.1f,0f)); 
     StartCoroutine(MMFade.FadeCanvasGroup(LoadingCompleteAnimation,0.1f,1f)); 

    } 
} 

}

+1

「シーンマネージャーにシーンを追加しました」とはどういう意味ですか?あなたはビルドの設定について話していますか? (メニュー 'ファイル'> 'ビルド設定')。ロードしようとしているシーンの名前が**正確に**ビルド設定のシーンの名前ですか? – Hellium

+0

スタイルに関するちょっとしたメモですが、C#でプライベート/保護された変数に下線を付ける必要はありません。アンダースコアの構文ではなく 'this.sceneToLoad = sceneToLoad'を使うことができます。 – Soviut

+0

@Helliumはい私はビルドの設定について話しています。ロードしたいすべてのシーンが正しい名前でビルド設定にありますが、それでもエラーが表示されます – Farooq

答えて

3

はあなたが章「ビルドでシーン」ビルド設定にロードしてみてください、あなたのシーンを追加したことがありますか? シーンマネージャを使用してプロジェクト内の任意のシーンに切り替える必要があります。

enter image description here

+0

はい私はすでに「Scene In Build」のすべてのシーンを正しい名前で追加しています – Farooq

0

GOファイル - >あなたはボックス内のすべてのシーンを持っていることを確認してくださいビルド設定。 enter image description here

0

またはあなたはそれらのインデックス文字列

SceneManager.LoadScene(0)を使用して、むしろその方がはるかに簡単なアプローチを値によって使用することができます。その後、

とあなたが名前のシーンをロードしようとするみたいに見えるのウィンドウ

0

を設定構築開くことによって、これらすべてのシーンを追加:「SceneName」。

  1. 機能パラメータの値が適切かどうかを確認してください。
  2. 名前の代わりにインデックスを使用して問題のあるシーンを読み込もうとします。
0

「LoadScene」の機能を確認してください。

私は正確な問題はわかりませんが、ログからは "LoadScene"機能に問題があります。

関連する問題