Unityメモ 孫要素の指定の仕方と親子プレハブを生成した場合の要素名指定の仕方
Unityでゲーム作ってまして詰まった・悩んだ部分を書いとこうかと思います。(自分が初心者なので初心者向け)
今のところアクションですが、いずれTCG的なものも作りたいです。
さて本題
Unityでオブジェクトの子要素を取得するやり方はわりと書いていますが、孫要素には
かいてなかったのでメモしときます。
GameObject ob = gameObject.transform.FindChild("obj_child/obj_descendent").gameObject
簡単ですね。スラッシュで区切ればいいだけです。(この例の場合自身を参照しています)
で、なぜここで詰まったかというと
グループ化したオブジェクトをInstantiateで生成していたので(プレハブ化して)
FindChild("obj_child/obj_descendent") //生成した親子プレハブを指定する場合間違い
が
FindChild("obj_child(Clone)/obj_descendent") //こっちが正解
になっるべきだったのです。
親子要素をプレハブ化した場合は親の部分だけ(Clone)がつくみたいなのです。
途中で「あ生成したら(Clone)付くっけ」と気づいて
FindChild("obj_child(Clone)/obj_descendent(Clone)")
したので詰まったのでした。(つまり上記は間違い)
凡ミスですが、結構悩んだのでメモっときます。