-2019-06-24【Unity】一定時間待ってから処理をする〜コルーチンの使い方〜Unityコルーチンを使うときにいつも調べるので備忘録として書いておこうと思います🐼コルーチンとはUnityで反復処理をしたい時や一定時間待ってから処理したいときにコルーチンを使用します。呼び出す関数名を文字列で指定するので間違っていてもエラーが出なかったり、引数を渡せないなどのデメリットがあるのでコルーチンを使うのがグッドだったりします。みたいなことが一つの関数でできたり、処理を停止して再開したりもできるのでとても便利でスマートです。基本の形コルーチンはIEnumeratorを返す関数として書き、実行はStartCoroutine(コルーチン名)でコルーチン名を指定して実行します。コルーチン名はコルーチン名()でもいけるし、"コルーチン名"でも実行できます。[処理を待つ時間]という形で書きます。処理を待つ時間はフレーム単位や秒数を指定することができます。以下のように書きます。//行いたい処理}IEnumeratorというのは反復処理を返すインターフェイスらしいです。コルーチンのためだけに使うものなのかと思ってましたがそうではないらしいです。わかんないのでまた調べておきます。一定時間待つ処理を入れるコルーチンの基本の一定時間待ってから処理を行う方法です。WaitForSeconds(秒数);と書くことで渡した秒数ぶん待ってから、次の行からの処理を行うことができます。"こんばんは";}上記のコードで以下のような感じになります。引数を渡して実行する引数を渡して実行することもできます。引数2));という書き方で引数を渡せます。引数が一つの場合は以下のような書き方もできます。引数);実際には以下のように使用します。null;↑は、コルーチンの処理を中断するときに使用するのですが、コルーチンの途中で書くと、そこで一旦処理を中断して次のフレームから再開されます。以下のように繰り返しの中に書くと、フレームごとに処理が実行されます。}}↓数字が綺麗に増えてないですがGIFだからです...フレームごとに処理を行う以下みたいな感じで徐々に値を変えたいときとかに。暗転などに使えたりしそうです。WaitForSecondsを繰り返しの中に書くと、渡した秒数ごとに処理が繰り返されるので、1秒ごとにマテリアルを透明にしていくとか、そういった処理が可能になります。}}1秒ごとに処理を行うーーーコルーチンの中で別のコルーチンの実行コルーチンの中で別のコルーチンを実行することもできます。コルーチンの中から実行するときはこのように書きます。StartCoroutine(コルーチン名());以下のようなかんじになります。別のクラスのコルーチンを呼び出す別のクラスのコルーチンを呼び出すこともできます。StartCoroutine(test2.Hogeo());ーーーコルーチンの外からコルーチンを停止するコルーチンの外からコルーチンを停止するときは、メソッドのIEnumeratorを事前に取得しておき、StopCoroutine();に渡すことで止めることができます。}ちなみに、停止なので再開することもできます。マウスが押されたらStartCoroutine();をする、などすれば、停止と再開が何度でもできます。全てのコルーチンを止めるゲーム終了時などに全てのコルーチンを終了したい場合は、StopAllCoroutines();で全てのコルーチンを停止させることができます。←これなに!?三項演算子について?:が出てくるコードを初めて見たとき、???ってなりません...2019-05-27【Unity】Texture2Dの画像から一部を切り抜くTexture2Dの画像から一部を切り抜く方法です。はてなブログProアイドルになりたいと思いながら死んだ顔で仕事をするプログラマー。めーぷるしろっぷをちょんちょんしています。LSDJについての記事を書きます。(1)リンクはてなブログブログをはじめる週刊はてなブログはてなブログProスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。