3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Unityでのcoroutineの使い方(処理を待ちたいとき)

Posted at

ある処理をする  ➡︎  少し待つ  ➡︎  別の処理をする
ということをしたいときに使える、coroutineについて書きます。

coroutineとは

まずcoroutineとはなにか。
これは何か英単語かと思って調べましたが違いました。プログラミングの文脈でのみ使われる単語のようです。
C#やC++など、C言語系で使われます。

このcoroutineとは関数で、これを使うと、フレームを跨いで処理を行うことができます。
実際に例をあげてみてみます。

C#:qiita.cs
void Start(){
     Increase();
}

private void Increase(){
     for(int i = 1; i <= 10; i++){
     Debug.Log(i);
     }
}

例えば、このようなコードを実行した場合、
Debugされるiは一瞬で増加していきます。

このiが、1秒に1ずつ増加していくようにしたい時、coroutineを使います。

C#:qiita.cs
void Start(){
     StartCoroutine("Increase");
}

private IEnumerator Increase(){
     for(int i = 1; i <= 10; i++){
     Debug.Log(i);
     yield return new WaitForSeconds (1.0f); 
     }
}

このようにすることで、iが1増えるごとに処理を1秒待つことができます。

Unityの公式によるUnityマニュアルでコルーチンについての記述のある部分はこちら

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?