FC2ブログ
    08 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 10

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【Unity】コルーチンのメモ的な感じ 

    こんにちは。
    大坂です。

    ここ数日冬のように寒いです・・・。
    昨日雪とか降ってましたしね。もうどういうことなんでしょうか・・・。

    さて、最近ちょっと便利だと思ったコルーチンの使い方。
    使った部分だけなので、少ないですが・・・。
    コルーチンは簡単に描くとこんなやつですね。
    void Start() {
     // コルーチンを呼び出す
     StartCoroutine("Hogehoge");
    }
    // コルーチン
    IEnumerator Hogehoge() {
     ・・・処理
     // 1秒待つ
     yield return new WaitForSeconds(1f);
     ・・・処理
    }
    処理の間に待ち時間入れられる感じですね。
    結構便利です。

    ここから最近知った使い方、2個です。
    1個目
    呼び出した処理が終わるまで待つようにする。
    void Start() {
     StartCoroutine("Hogehoge");
    }
    IEnumerator Hogehoge() {
     for(int i = 0; i < 10; i++) {
      // Hogehoge_2の処理が終わるまで待つ
      yield return StartCoroutine("Hogehoge_2");
     }
    }
    IEnumerator Hogehoge_2() {
     ・・・処理
     yield return new WaitForSeconds(1f);
     ・・・処理
    }
    訳あって、ループの中でコルーチンを呼び出していたのですが、
    バンバンコルーチンが呼び出されてちょっと困ったことになったので、
    上のようにすると、Hogehoge_2の処理が終わったら次のループに行きますね。

    2個目
    コルーチンを呼び出すときに複数引数の指定。
    void Start() {
     StartCoroutine(Hogehoge(1,2));
    }

    IEnumerator Hogehoge(int i, int j) {
     ・・・処理
     yield return new WaitForSeconds(1f);
     ・・・処理
    }
    これできたんですね・・・。知らなかったのです。

    とまぁ、知らないことがまだまだいっぱいあるので、いろいろ覚えないといけないですね!

    では今週もこの辺でノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

    トラックバックURL
    →http://halcyonsystemblog.jp/tb.php/194-8ec33a27
    この記事にトラックバックする(FC2ブログユーザー)