なんていうかあいつStartCoroutineしたGameObjectが非アクティブになったら停止するっぽい。
アクティブに戻しても再開しないっぽい。
エディタで適当に
public class RoopSample : MonoBehaviour { // Use this for initialization void Start () { StartCoroutine (SampleRoop ()); } IEnumerator SampleRoop() { int count = 0; while (true) { count++; Debug.Log ("roop: " + count); yield return null; } } // Update is called once per frame void Update () { } }
こんな感じのクラスをつくってGameObjectに貼り付けて、実行しながらそのオブジェクトをActive/非Activeと切り替えてやるとよくわかります。
実質マルチスレッドみたいに扱っているものだから、依存してるGameObject把握してないと変な罠になってしまいそうなポイントです。