FC2ブログ
06 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 08

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【ハルシオンブログ】またコルーチンで嵌るの巻 オブジェクト非表示でも動かなくなるんすね。 

こんにちは。
大坂です。

関東もまた雨が続くみたいですね。
ちょっと涼しくなるといいんですけど。

以前こんなことを書いてコルーチンで嵌ってましたが、
似たようなことをまたやったのでメモですよ。
【ハルシオンブログ】コルーチン使っててちょっと嵌ったのでメモ

前回はDestroyしたらコルーチンが動かなくなる―って話でしたが、
オブジェクトを非表示にしても動かなくなるって話。

こんなことをしてると途中で動かなくりますね。
public class BlogTest : MonoBehaviour {

public GameObject blogTest2;

void Start () {
StartCoroutine(blogTest2.GetComponent<BlogTest2>().Test());
Debug.Log("Test_3");
blogTest2.SetActive(false);
}
}

public class BlogTest2 : MonoBehaviour {

public IEnumerator Test() {
Debug.Log("Test_1");
yield return new WaitForSeconds(3f);
Debug.Log("Test_2");
}
}



Test_2のログが出てませんね。

対策も同じですが、コルーチンが終わるの待ってから非表示にしたらいいですね。
public class BlogTest : MonoBehaviour {

public GameObject blogTest2;

IEnumerator Start () {
yield return StartCoroutine(blogTest2.GetComponent<BlogTest2>().Test());
Debug.Log("Test_3");
blogTest2.SetActive(false);
}
}


変更点は太字赤のところですね。


これでTest_2のログも出ましたね。

今週もこれで終わり。
ではまたノシ

スポンサーサイト

Category: 開発日記(Unity)

tb 0 : cm 0