【Unity】Nested PrefabやPrefabエディターが追加、新しいPrefabワークフローを触ってみた
Uniteベルリンにて、Nested Prefabが可能になるプレビュービルドが公開されたので触ってみました。
追記:Unity 2018.3にて搭載されています
Prefabの階層化が出来るようになった
UnityではPrefabの中にPrefabを配置すると、親のPrefabに統合されるという問題がありました。
例えばPrefab AとPrefab Bという異なるキャラクターにPrefab Cという共通の武器を持たせた場合、反映するとPrefab Cという情報は失われ統合されます。結果、Prefab Cの内容を書き換えようと思ったらPrefab A・Bを探して書き換えるといった手間が発生することになります。
新しいPrefabのワークフローではこのPrefabのネスト問題が解消し、良い感じに出来るようになりました。
Prefabの親とPrefabの子は明確に分けて設計出来るようになっていて、Prefabの親を変更した場合でもPrefabの子のユニークさは維持されるようになっているみたいです。
例えば2つのPrefabの中に共通のテキストプレハブを配置して、中身を書き換えてみます。Prefabが異なりますが、色を変えればちゃんと反映されています。
またPrefabをGameObject側で変更した場合、何がどう変更したのかといった差分が見れるようになったみたいです。
Prefabのバリアント
Prefabは基本的に他のPrefabとは異なるものとして扱われました。例えばImageのプレハブを複製した場合、元となるPrefabを更新しても他のPrefabには反映しません。
新しいPrefabワークフローではPrefabバリアントという機能が追加されました。これはPrefab毎にユニークな値を持ちつつも、変更していない内容は共有する…といった物みたいです。
例えば下のUIは上がオリジナル、下がバリアントなPrefabです。2つは独立した異なるPrefabなのですが、オリジナルを変更するとバリアントのPrefabも反映されています。
これは、例えばオリジナルなユニットを作った後バリアントでユニットを量産しておけば、オリジナルのユニットを変えれば全てのユニットに反映する…といった感じで使えそうです。
Prefabエディターの追加
通常Prefabを操作する場合は、編集用シーンに配置して操作等をしていた訳ですが、Prefab用エディターが新しく追加されました。
Open PrefabやPrefabボタンのダブルクリックでシーンとは独立したPrefabエディターが開き、編集出来るようになっているみたいです。
プレビューのダウンロード
下のページよりダウンロード出来ます。