2017-11-29 13 views
0

の間に起動しない -コルーチンは、私がコードで、メインメニューのシーンを持っているシーン

void Start() 
    { 
     StartCoroutine (FadeIn()); 
    } 

    IEnumerator FadeIn() 
     { 
      whiteFadeInAnim.Play("whiteEntryMenu"); 
      yield return new WaitUntil(()=>whiteFadeIn.color.a==0); 
      ShowMainMenu(); 
      Debug.Log ("Coroutine started"); 
     } 

whiteFadeInAnim.Play("whiteEntryMenu");は徐々に白スプライトゲームオブジェクトのアルファを低減します。次に、ShowMainMenu()はいくつかのアニメーションを含むメニューボタンを表示します。私はそれを再生するシーンが正常に動作します。しかし、 - SceneManager.LoadScene("menu");を使って別のシーンからこのシーンをロードしようとすると、何も起こりません。メニューシーンがロードされますが、私が見ることができるのは白いスプライトであり、デバッグログは表示されません。どちらのエラーも表示されません。なぜこうなった?

答えて

0

あなたの質問にはコメントできませんので、私はこれを回答として投稿します。

すべてのチェックの最初のスクリプトとゲームオブジェクトは、それが上にある場合、それがロードされた後のシーンで活躍している。(ブルーはゲームオブジェクトやスクリプトの名前でティック)

あなたはまたにしたいことたとえば、OnEnable()は同じスクリプトをシーン開始時に有効にします(有効なスクリプトとして保存されている場合)。しかし、OnEnableシーンをリロードする必要はありません。 (Start()と同様)

また、MonoBehaviourメソッドの実行順序に問題がないかどうかを調べるには、thisを読んでください。

関連する問題