どこまでも自由な日々

パソコン初心者主婦のブログです。

指定した時間待ってから実行する

 ボタンを押して2秒あなた真剣な目をしてから画面遷移、

というのをやりたい。

 

System.Threading.Thread.Sleep(2000);

 

 これで2秒止まるけれど、動作自体が止まってしまう。

 動きはつけたまま、2秒だけ待って特定のメソッドを実行したい。

 

        yield return new WaitForSeconds (2.0f);

単にこう書くだけではだめ。

コルーチンを呼び出してそこで書けば通る。

 

   public void OnMouseDown(){

        StartCoroutine ("Sample"); //コルーチンを呼び出す

    }

    // コルーチン
    private IEnumerator Sample() {


        audioSource.PlayOneShot (sound);     // 音を鳴らして
        yield return new WaitForSeconds (2.0f);  //2秒たってから
        Application.LoadLevel ("Main");     //画面遷移


    }

 

うまくいきました!

 

参考:

Unityのコルーチンの使い方をまとめてみた | ワンダープラネットエンジニア Blog