【Unity】プリセットでコンポーネントの初期設定をカスタマイズする

こじゃらこじゃら

コンポーネントを追加するたびに毎回同じ設定をしなくてもよくする方法はないの?

このはこのは

Unity2018以降なら、プリセットという機能が使えるわ!

コンポーネントを追加したり、アセットを新規作成する時、初期設定に戻るため設定し直さなければいけません。

このような手間は、プリセット機能を使うことである程度解消できる場合があります。ただし、この機能を使えるバージョンはUnity2018.1以降です。

プリセット機能を使うと、のようなことが実現できます。

プリセット機能で出来ること
  • 設定内容をセーブ・ロードする
  • 初期設定を独自の内容に変更する

2つ目の初期設定の変更に関しては、マテリアルやスプライトなどネイティブアセットには適用できないなど制約があります。またメニュー等からオブジェクトを追加した際には一部反映されないものもあるといった注意点もあります。

本記事では、プリセット機能を使って設定を使いまわしたり、初期設定をカスタマイズする方法を解説します。

動作環境
  • Unity2021.2.1f1

スポンサーリンク

設定内容をプリセットとして保存する

コンポーネントやアセットの設定内容は、プリセットファイルとして保存することができます。

まず、対象となるコンポーネントのプロパティをインスペクターに表示します。

プリセットの保存は、インスペクターの右上にあるプリセットアイコンから行います。

アイコンをクリックすると、Select Presetウィンドウが開くので、Save current to…ボタンをクリックします。

ファイル保存ファイアログが開くので、保存場所とファイル名を指定して保存します。

再びプリセットアイコンをクリックすると、保存したプリセットが追加されていることが確認できます。

注意

異なる種類のコンポーネントのSelect Presetウィンドウを開いても表示されないことにご注意ください。コンポーネントの種類に対応したプリセットのみが一覧として表示されます。

なお、プリセットの保存は、マテリアルなどのアセットに対しても行えます。

プリセットを適用する

先ほど保存したプリセットを別のコンポーネントに反映する手順です。

プリセットを適用したいオブジェクトを選択し、インスペクターにコンポーネントのプロパティを表示します。

コンポーネントのプリセットアイコンをクリックしてSelect Presetウィンドウを開き、該当するプリセットをクリックして選択します。

プリセットが反映されていることが確認できます。

初期設定をカスタマイズする

初期設定(デフォルトプロパティ)を独自のプリセットに置き換える手順の解説です。

初期設定のカスタマイズは、Preset Managerから行えます。

Preset Managerは、トップメニューのEdit > Project Settings…の順に選択してProject Settingsウィンドウを開き、左の一覧からPreset Managerを選択することで開けます。

そして、Add Default Presetボタンからデフォルトプリセットを選択して追加します。

デフォルトプリセットの指定までの流れは、動画のようになります。

プリセットを追加すると、Preset Manager一覧に表示されるようになります。例ではLightコンポーネントの初期設定が書き換えられている状態になります。

この状態でコンポーネントを追加してみると、Preset Managerに追加したプリセット通りに初期化されていることが確認できます。

また、インスペクターのコンポーネントを右クリック > Reset選択で設定をリセットした際も、デフォルトプリセットの内容で初期化されます。

デフォルトプリセットの使用における注意点

コンポーネントの初期設定をカスタマイズできる便利なデフォルトプリセットですが、誤解しやすいと思われる注意点もあります。

例えば、マテリアルやスプライトなど、ネイティブアセットに対してはデフォルトプリセットを指定できません。

また、GameObjectメニュー等から追加したオブジェクトに対しては、設定の一部または全部が上書きされる可能性があります。

さいごに

プリセットを活用することで、コンポーネントやアセットに対して何度も同じ設定をする手間を省くことができます。

設定内容のコピー&ペーストでも同じようなことができますが、プリセットを使うと、インスペクターウィンドウを往復しなければいけないという手間がなくなります。

プリセットやPreset Managerの設定内容はアセットとして保存されるため、Git管理して複数メンバーで共有することも可能です。

参考サイト

スポンサーリンク