前回から引き続き、大量の Prefabの子オブジェクトをまとめて変更する方法です。


大量にコピーして量産した子オブジェクトを持つ Prefabがあり、その子オブジェクトの設定をまとめて同じ変更をしたい、と言うことが以前あり。

普通に Prefabを1つ1つオープンして変更と言うのは、ちょっとやりたくない量で。
うまくまとめて変更できないかと思い、考えついたやり方のシェアです。
Unity Basic_147

【解決案】

Projectビュー内の Prefabをまとめて選択します。
Unity Basic_148

それをいったんシーン上に置きます。要は、Hierarchyビュー上にコピーします。
Unity Basic_149

Hierarchyビュー上で、全ての Prefabが選択されたまま、右クリックでアクションメニューを表示。「Select Children」をクリックします。
Unity Basic_147

すると、親と全ての子オブジェクトがまとめて選択された状態になります。
Unity Basic_151

ここで変更したいのは1つの子オブジェクトです。
ここは仕方ないので、Ctrlキーを押しながら1つ1つ子オブジェクトをクリックして、変更したい子オブジェクトだけを選択した状態にします。
(全体でここだけが面倒な作業となります。)
Unity Basic_152

必要な子オブジェクトを選択した状態で、Inspectorビューより必要な変更をまとめて行います
Unity Basic_153

例えば、ここでは子オブジェクトの Box Colliderコンポーネントの Sizeを変更しました。
Unity Basic_154

そして、そのまま、Hierarchyビューでまとめて選択された子オブジェクト上で、右クリックでアクションメニューを開きます。
そこの「Prefab > Select Root」で親オブジェクトに選択対象を移します。
Unity Basic_142

選択対象が親オブジェクトに移りました。
Unity Basic_155

そして、これら親オブジェクトが選択された状態で、Inspectorビュー上の「Overrides」を開きます。
そこの「Apply All」ボタンをクリックします。
これで、今行った子オブジェクトへの変更が、全ての基の Prefabに反映されます。
 Unity Basic_156

これで、Projectビュー内の Prefabを変更済みとなりましたので、Hierarchyビュー上の Prefabをコピーしたゲームオブジェクトは必要ありません。
そのまま、親オブジェクトが選択された状態で、右クリック「Delete」にて削除してしまいましょう。
Unity Basic_157

これで、大量のPrefab内の子オブジェクトへの変更が完了しました。



どうでしたか。
Projectビュー内の Prefabを1つ1つオープンして、子オブジェクトに変更していくよりは かなり楽かと思います。

これでも一部面倒な部分がありましたので、もっと楽な方法があったら知りたいです。
私は一応この手で乗り越えましたので、同じ状況で苦しんでいる方が救われるように情報シェアしました。



Sponsored Link