ユーザ用ツール

サイト用ツール


unity2d:co-routine

文書の過去の版を表示しています。


<markdown> #コルーチン

##概要 特徴として通常の関数のとは異なり、処理を途中で抜けて任意のタイミングで中断部分から処理を再開できる。 例えば、初心者の方が「キャラクターを1フレームに1ドットずつ100 ドット動かす」といった場合、下記のようにしてしまうことがあります。

for(int i=1; i<100; i++){   myChar.MoveToRight(1); }

これでは結果的に失敗で、これを実行すると1フレームで100ドット右に動いてしまいます。 ところが、「yeild」を1行入れることで、1フレームに1ドットずつ100ドット動かすことが出来るようになります。

for(int i=1; i<100; i++){   myChar.MoveToRight(1);   yeild return 0; }

「yeild」を使用することで、関数の実行を一時的に中断し、次回にその関数が呼び出されたときにその続きを実行することが出来ます。 内部的には、オブジェクト指向のイテレータとなるため「IEnumerator」を使う。この機能により状態変数を減らせることが出来て便利です。

[Unityで覚えるC# SlideShare](http://www.slideshare.net/lucifuges/unityc) ![コルーチンスライド](http://yaju.sakura.ne.jp/wiki/image/unity10/co-routine.png)

【参考】 [マイクロスレッド](https://web.archive.org/web/20130522010427/http:/www44.atwiki.jp/pioswiki/pages/33.html) [[VB]遅れてやってきたYield その5](http://blogs.wankuma.com/yaju/archive/2012/12/24/310310.aspx)

##コルーチンの準備 </markdown>

unity2d/co-routine.1453042504.txt.gz · 最終更新: 2016/01/17 23:55 by yajuadmin