【Unity】【エディタ】Preset ManagerでAddコンポーネント時・アセットインポート時のデフォルト値を設定する

UnityのPreset ManagerでAddコンポーネント時・アセットインポート時のデフォルト値を設定する方法についてまとめました。

できることの例

Preset Managerを使うとデフォルト値を管理・適用できます。
まずはPreset Managerを使ってできることをこの節でまとめます。

コンポーネントアタッチ時のデフォルト値を設定

まずよく使いそうな用途として、コンポーネントをアタッチした際のデフォルト値を設定できます。

たとえばButtonコンポーネントのTransitionのデフォルト値をNoneにしておいたり、

f:id:halya_11:20210525000347p:plain
ButtonのTransition

TextコンポーネントのRaycast TargetをデフォルトでOffにしておいたりすることができます。

f:id:halya_11:20210525000403p:plain
TextのRaycastTarget

アセットインポート時のデフォルト値を設定

アセットをインポートした時の値も設定できます。
例えばテクスチャをインポートした時のデフォルト値を設定しておけば圧縮設定を自動化したりできます。

f:id:halya_11:20210525000659p:plain
Texture ImporterのPreset

また後述しますが、適用するPresetはアセットパスをベースとしたフィルタリングを掛けられるため、
特定のフォルダに入っているテクスチャだけ自動的にSpriteにする、といったことも可能です。

ScriptableObject作成時のデフォルト値を設定

ScriptableObjectのPresetを作ることも可能です。

f:id:halya_11:20210525002022p:plain
ScriptableObjectのPreset

この場合、シリアライズフィールドの値がPresetとして保持され、
ScriptaleObjectが新規作成されたときにPresetの値が適用されます。

使い方

次にPreset Managerの使い方をまとめます。

Presetアセットを作る

まずPresetアセットを作ります。

PresetにしたいコンポーネントやScriptableObject、各種ImporterのInspectorの左上からPresetボタンを押下し、
出てきたウィンドウ左下の「Save current to...」を押してPresetアセットのファイルを任意の場所に保存します。

f:id:halya_11:20210524232520p:plain
Presetアセット作成

これでPresetアセットが作成できました。

Default Presetに登録・削除する

次に作成したPresetアセットをDefault Presetとして登録します。
Default Presetに登録すると、そのPresetはAddコンポーネント時・アセットインポート時のデフォルト値となります。

登録するにはPresetアセットのInspector上部のAdd to Image Defaultボタンを押下します。

f:id:halya_11:20210524233403p:plain
Default Presetとして登録

もう一度同じボタンを押下するとDefault Presetから削除できます。

また登録したDefault PresetはProject SettingsのPreset Managerから確認できます。

f:id:halya_11:20210524233610p:plain
Preset Manager

このウィンドウから追加・削除することも可能です。

適用対象をフィルタリングする

ImporterやScriptableObjectのPresetについては、それを適用する対象をアセットパスでフィルタリングできます。
フィルタリングはPreset Managerで設定でき、アセットパスにはglobパターンが使えます。

以下はExampleフォルダ以下のテクスチャがインポートされた時のみPresetを適用する設定の例です。

f:id:halya_11:20210524234654p:plain
フィルタリング

なおglobパターンについては以下の記事にまとめていますのでこちらを参照してください。

light11.hatenadiary.com

また、フィルタリングされた結果として該当するPresetが複数ある場合には、Presetは上から順に適用されます。

Partial Presetを作る

PresetアセットのInspectorのプロパティを右クリックして、Exclude Propertyを選択すると、
そのプロパティはPresetの設定から除外されます。

f:id:halya_11:20210524235359g:plain
Exclude Property

このように特定の値だけを反映するPresetをPartial Presetと呼びます。
Partial Presetを複数Default Presetとして登録しておくことで、Presetの使いまわしがやりやすくなります。

関連

light11.hatenadiary.com

参考

docs.unity3d.com