07 «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.31.» 09

ハルシオンシステムの気まま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.blog.fc2.com/tb.php/194-8ec33a27
この記事にトラックバックする(FC2ブログユーザー)