keyword : Unity4.x SetActiveRecursively
答え
SetActive()を使う。
経緯
Unity4以前でゲームオブジェクトの有効/無効を操作するには、ゲームオブジェクトのactiveプロパティの値を直接操作していた。
// ゲームオブジェクトを有効にする gameObject.active = true; // ゲームオブジェクトを無効にする gameObject.active = false;
この操作では、操作したゲームオブジェクトのみ、有効/無効が操作されるので、子供のゲームオブジェクトの有効/無効は連動していなかった。そこで、gameObject.SetActiveRecursively()を使って、まとめて有効/無効を操作していた。
Unity4からSetActive()メソッドが追加されて、これで子供まで含めた有効/無効を設定できるようになった。それに伴いSetActiveRecursively()が廃止された。
以上から、SetActiveRecursively()の代わりに、SetActive()を利用すればよくなった。