GameObjectコンポーネント以下のコンポーネントのゲームオブジェクトでアクセスする方法
children = gameObject.GetComponentsInChildren(); foreach (Transform item in children) { if ( !item.name.Equals(gameObject.name) ) { MeshRenderer meshRender = item.gameObject.GetComponent (); if ( meshRender != null ) meshRender.enabled = _value; } }
などでアクセスする。
ポイントはTransform型でアクセスすること。
基本的に全てのGameObjectはTransformを所有する決まりが有るので、
transformクラスからGameObjectへのアクセスが可能になっている。
アセンブリブラウザで確認すれば解るが、TransformクラスはComponentクラスを継承しているので、様々なオブジェクトを取り扱えるというわけだ。
http://docs-jp.unity3d.com/Documentation/Components/class-Transform.html
◆結論
GameObject=Transformという認識で問題ない。
しかし、スケール値の不均等によるパフォーマンスの問題や制限があるだなんて初めて知った……。