海賊王をめざす男 マツです。こんにちは。

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);

これで、子も含めて一括でアクティブ/非アクティブを変更することが可能です。


Unity Script Reference ? GameObject.SetActiveRecursively
http://unity3d.com/support/documentation/ScriptReference/GameObject.SetActiveRecursively.html

HTML5飯