Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9743

【Unity/C#】コルーチンについて

$
0
0

本記事の概要

本記事は自分がコルーチンについてでの程度理解しているかの確認もかねて書いておりますので間違っていることがあります、もし間違いを見つけた場合コメントなどをください、修正します。

目次

コルーチン(Coroutine)とは?

コルーチンとは処理を中断したり、何秒後に処理を再開したり、中断したところから再開したりすることができ、非同期のような処理ができる関数っぽいものです。
(コルーチンはマルチスレッド見たいに感じますがシングルスレッドで動いていますしメインスレッドでの処理となります。)
Unityマニュアル
詳しく知りたい方はこちらの公式マニュアルをお読みください。

どうやって使うの?

まず必須なのがusing System.Collectionsの宣言です。
using System.Collectionsを追加することによってIEnumerator型を宣言できるようになっています。
このIEnumerator型を戻り値にして関数のように書けばコルーチンとして認識されます。

サンプルコード

IEnumeratorTest(){yieldbreak;}

コルーチンはこのように記述します。
yield breakについてはあとでどのような処理なのか説明します。

どうやって呼び出すの?

この二つの方法で呼び出すことができます。

//文字列でコルーチンの名前を書くStartCoroutine("Test");//コルーチンを関数呼び出しのように書くStartCoroutine(Test());

このように呼び出す方法は2種類あります、引数を持たせて呼び出したい場合は

IEnumeratorTest(intnum,stringname){yieldbreak;}//コルーチンを関数呼び出しのように書くStartCoroutine(Test(10,"名前"));

このように呼び出すことによって引数を渡すことができます。

yieldって?

メソッドの処理を一時的に中断し、処理を呼び出し元に返すことができるようにするためのものです。

yield一覧

//処理を止めて次のフレームに処理を開始する場所yieldreturnnull;//処理を止めて次のフレームに処理を開始する場所yieldreturn0;//ここで処理を強制的に止めますyieldbreak;//処理をここで止めて引数で渡した数値秒経ったら処理をここから再開yieldreturnnewWaitForSeconds(1f);

Viewing all articles
Browse latest Browse all 9743

Trending Articles