Unity GameObject の子を含め一括でアクティブ/非アクティブを変更する
海賊王をめざす男 マツです。こんにちは。
Unity をはじめたころにやりたいことで、Scene に配置されている GameObject を子も含めて一括でアクティブ/非アクティブを変更するのがあります。
function Awake () { ActiveChange(gameObject.transform, false); } function ActiveChange(targetGO : Transform, activedFlag : boolean) { targetGO.active = activedFlag; for (var child : Transform in targetGO) { ActiveChange(child, activedFlag); } }
しかし、これはすぐにやめました。リファレンスをよく読んでみると SetActiveRecursively というのがあります。
targetGO.gameObject.SetActiveRecursively(false);
これで、子も含めて一括でアクティブ/非アクティブを変更することが可能です。