テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】Nested PrefabやPrefabエディターが追加、新しいPrefabワークフローを触ってみた

f:id:tsubaki_t1:20180621224234j:plain

Uniteベルリンにて、Nested Prefabが可能になるプレビュービルドが公開されたので触ってみました。

追記:Unity 2018.3にて搭載されています

 

 

Prefabの階層化が出来るようになった

UnityではPrefabの中にPrefabを配置すると、親のPrefabに統合されるという問題がありました。

例えばPrefab AとPrefab Bという異なるキャラクターにPrefab Cという共通の武器を持たせた場合、反映するとPrefab Cという情報は失われ統合されます。結果、Prefab Cの内容を書き換えようと思ったらPrefab A・Bを探して書き換えるといった手間が発生することになります。

f:id:tsubaki_t1:20180621232109j:plain

 

新しいPrefabのワークフローではこのPrefabのネスト問題が解消し、良い感じに出来るようになりました。

Prefabの親とPrefabの子は明確に分けて設計出来るようになっていて、Prefabの親を変更した場合でもPrefabの子のユニークさは維持されるようになっているみたいです。

f:id:tsubaki_t1:20180621232135j:plain

f:id:tsubaki_t1:20180621230043j:plain

 

例えば2つのPrefabの中に共通のテキストプレハブを配置して、中身を書き換えてみます。Prefabが異なりますが、色を変えればちゃんと反映されています

f:id:tsubaki_t1:20180621231445j:plain

f:id:tsubaki_t1:20180621231217g:plain

 

またPrefabをGameObject側で変更した場合、何がどう変更したのかといった差分が見れるようになったみたいです。

f:id:tsubaki_t1:20180621231207j:plain

 

Prefabのバリアント

Prefabは基本的に他のPrefabとは異なるものとして扱われました。例えばImageのプレハブを複製した場合、元となるPrefabを更新しても他のPrefabには反映しません。

 

新しいPrefabワークフローではPrefabバリアントという機能が追加されました。これはPrefab毎にユニークな値を持ちつつも、変更していない内容は共有する…といった物みたいです。
例えば下のUIは上がオリジナル、下がバリアントなPrefabです。2つは独立した異なるPrefabなのですが、オリジナルを変更するとバリアントのPrefabも反映されています。

f:id:tsubaki_t1:20180621233532j:plain

f:id:tsubaki_t1:20180621233357g:plain

これは、例えばオリジナルなユニットを作った後バリアントでユニットを量産しておけば、オリジナルのユニットを変えれば全てのユニットに反映する…といった感じで使えそうです。

 

Prefabエディターの追加

通常Prefabを操作する場合は、編集用シーンに配置して操作等をしていた訳ですが、Prefab用エディターが新しく追加されました。

Open PrefabやPrefabボタンのダブルクリックでシーンとは独立したPrefabエディターが開き、編集出来るようになっているみたいです。

f:id:tsubaki_t1:20180621234140g:plain

 

プレビューのダウンロード

下のページよりダウンロード出来ます。

unity3d.com