UnityのPreset ManagerでAddコンポーネント時・アセットインポート時のデフォルト値を設定する方法についてまとめました。
できることの例
Preset Managerを使うとデフォルト値を管理・適用できます。
まずはPreset Managerを使ってできることをこの節でまとめます。
コンポーネントアタッチ時のデフォルト値を設定
まずよく使いそうな用途として、コンポーネントをアタッチした際のデフォルト値を設定できます。
たとえばButtonコンポーネントのTransitionのデフォルト値をNoneにしておいたり、
TextコンポーネントのRaycast TargetをデフォルトでOffにしておいたりすることができます。
アセットインポート時のデフォルト値を設定
アセットをインポートした時の値も設定できます。
例えばテクスチャをインポートした時のデフォルト値を設定しておけば圧縮設定を自動化したりできます。
また後述しますが、適用するPresetはアセットパスをベースとしたフィルタリングを掛けられるため、
特定のフォルダに入っているテクスチャだけ自動的にSpriteにする、といったことも可能です。
ScriptableObject作成時のデフォルト値を設定
ScriptableObjectのPresetを作ることも可能です。
この場合、シリアライズフィールドの値がPresetとして保持され、
ScriptaleObjectが新規作成されたときにPresetの値が適用されます。
使い方
次にPreset Managerの使い方をまとめます。
Presetアセットを作る
まずPresetアセットを作ります。
PresetにしたいコンポーネントやScriptableObject、各種ImporterのInspectorの左上からPresetボタンを押下し、
出てきたウィンドウ左下の「Save current to...」を押してPresetアセットのファイルを任意の場所に保存します。
これでPresetアセットが作成できました。
Default Presetに登録・削除する
次に作成したPresetアセットをDefault Presetとして登録します。
Default Presetに登録すると、そのPresetはAddコンポーネント時・アセットインポート時のデフォルト値となります。
登録するにはPresetアセットのInspector上部のAdd to Image Defaultボタンを押下します。
もう一度同じボタンを押下するとDefault Presetから削除できます。
また登録したDefault PresetはProject SettingsのPreset Managerから確認できます。
このウィンドウから追加・削除することも可能です。
適用対象をフィルタリングする
ImporterやScriptableObjectのPresetについては、それを適用する対象をアセットパスでフィルタリングできます。
フィルタリングはPreset Managerで設定でき、アセットパスにはglobパターンが使えます。
以下はExampleフォルダ以下のテクスチャがインポートされた時のみPresetを適用する設定の例です。
なおglobパターンについては以下の記事にまとめていますのでこちらを参照してください。
また、フィルタリングされた結果として該当するPresetが複数ある場合には、Presetは上から順に適用されます。
Partial Presetを作る
PresetアセットのInspectorのプロパティを右クリックして、Exclude Propertyを選択すると、
そのプロパティはPresetの設定から除外されます。
このように特定の値だけを反映するPresetをPartial Presetと呼びます。
Partial Presetを複数Default Presetとして登録しておくことで、Presetの使いまわしがやりやすくなります。