GameObjectのすべての子を別のものに変更しようとしています。Unity3D:子どもたちを再育てながらループする際の問題
foreach (Transform child in transform) {
child.parent = new_parent.transform;
}
このコードは、子を部分的に切り離し、元の親にいくつかの子を残します。上記のコードを使用して上記の操作を実行します。
foreach (Transform child in transform) {
child.tag = "collected";
}
GameObject[] collected = GameObject.FindGameObjectsWithTag ("collected");
foreach (Transform child in collected.transform) {
child.transform.parent = new_parent.transform;
}
これは完全に機能します。私もparent.GetChild(i)
と一緒に使用し、同様の問題が発生します。どこに行方不明ですか?
することはありますパターンが省略されているオブジェクトに? – Serlite
子供の "リスト"から項目を取り除いて親を変更すると、基本的に子供が削除されているようです。 「子」が削除され、リストがシフトすると、次の「子」はキュー内でそのターンを逃す。 2番目のループでは、各子は 'collect'の子ではなく(最初のループのように)、' collect'の配列全体をループして親を変更することができます。アレイ。 – ryeMoss