Unity

[Unity] Unity2018の新機能Presetを使ってみた

Unity2018で追加された機能「Preset」を触ってみます。

実行環境

  • Unity2018.1.0b4

注意

  • Unity2018は2018年1月現在、βリリースのステータス
    • 正式リリース時には仕様変更および機能自体のオミットの可能性があります

Presetで出来ること

コンポーネント/アセットの値のファイル書き出し

Unity2018からは下記のようなアイコンがコンポーネント上に表示されるようになります。

preset.png

これはフォントや画像、音声といったアセットにおいても同等です。

preset2.png

この動線から Save current to... を選択することでPresetファイルを書き出すことができます。
Presetファイルにはそのコンポーネントやアセットにおける設定値が保持されます。

preset.gif

Presetをコンポーネントに適応する

上記で出力されたPeset(設定値)を特定のコンポーネント/アセットに適応することができます。
コンポーネント/アセットからPresetアイコンを選択し、適応したいPresetを選択します。

preset2.gif

また適応したいコンポーネント/アセット名にPresetアセットをドラッグしても適応できます。

preset3.gif

特定のPresetをデフォルト値とする

Presetアセットの Set As ~~~ Default の導線を選択することでデフォルト値を設定できます。
設定された値は、AddComponentもしくはアセットインポート時に適応されます。
当然ながら、同一のコンポーネント/アセットにおいて複数設定することはできません。

preset4.gif

Presetにおける注意事項

Hierarchy/Menu経由でCreateした場合にデフォルト値が適応されない

Unity2018.1.0b4までのバージョンにおいて
Hierarchy/Menu経由でCreateした場合にはデフォルト値が適応されないことを確認しました。
(Unity初期値が設定されたPrefabをInstantiateしているような挙動)

preset5.gif

ちなみにResetをすることでデフォルト値が反映されます。

preset6.gif

Prefabと異なり、Preset自体の変更は伝搬できない

Prefabは変更をApplyすることで、Scene上に配置したコンポーネントに変更を伝搬することが可能ですが
Presetアセットを変更しても、既にScene上に配置したComponentやアセットには適応されません。
この場合、再度Presetを指定して変更を反映する必要があります。

preset7.gif

Presetの良いと感じた部分

Prefabと違って対象のComponent以外を管理対象にしなくてよい

Prefabの場合、管理したいコンポーネント以外の情報も保有します。
Presetを使用することで、最小限の運用を行うことができます。

デフォルト値が設定できる

画像や音声など一括で同一の設定を持っておきたいアセットの設定に重宝するでしょう。
(アセットの設定を持てることがそもそもPresetの大きなアドバンテージとなります)
また UI.TextUI.Image において RaycastTarget を外しておき
下に描画されたボタンのタッチを阻害する事故を防ぐようなこともできるでしょう。

注意(再掲)

  • Unity2018は2018年1月現在、βリリースのステータス
    • 正式リリース時には仕様変更および機能自体のオミットの可能性があります