デジタルフロッグ

Unityのアプリの開発をしながらいろいろと忘れないための備忘録でございます。

コルーチンとアップデートの流れ方

コルーチンってプログラミングを1から勉強し始めてる人にとってよくわからないものですよね。

自分もちゃんと説明しろと言われても全然できないのでコルーチンについてこれからまとめていけたらと思います。

実際使わなくてもなんとかなったりしたりもするものもあるのですが、プログラマーから言わせると自分のやり方は邪道というかとにかくプログラムが汚いという事でした(笑)

すべて独学の我流なので…じゃやっぱり通じない部分も一緒にやると出てきます。

 

using UnityEngine;
using System.Collections;

public class hogehoge : MonoBehaviour {

    void Start(){
        StartCoroutine("cor");
    }

    void Update(){
        Debug.Log ("アップデート");
    }

    public IEnumerator cor(){
        while (true) {
            Debug.Log ("コルーチン");
            yield return null;
        }
    }

}

こんな感じで書いてコンソールを見てみると

f:id:karaagedigital:20160904153401p:plain

アップデートとコルーチンの中を順番に通っている事がわかります。

using UnityEngine;
using System.Collections;

public class hogehoge : MonoBehaviour {

    void Start(){
        StartCoroutine("cor");
    }

    void Update(){
        Debug.Log ("アップデート");
    }

    public IEnumerator cor(){
        while (true) {
            Debug.Log ("コルーチンブレイク");
            yield break;
           
Debug.Log ("コルーチン");
            yield return null;
        }
    }

}

次にブレイクをwhileの中に書いてみました。

f:id:karaagedigital:20160904153800p:plain

最初にコルーチンの中を通りますが、そのあとはアップデートの中をずっと回っています。

breakを通るとそのコルーチンの処理は中断ではなく終了となってしまいます。

 

とりあえず初歩的なところで、また別の記事で初歩的な使い方をまとめていきたいと思います。

 

全部をUpdate()の中に書いてしまうとどうしてもプログラムが長くなってあれこれ書かれていて汚くなってしまいがちなので、こうしてコルーチンで別にしておく事がきれいなプログラムを書く為には必要なんだと思いました。