この記事でのバージョン
Unity 2018.4.8f1
はじめに
Unityはコンポーネントの設定値をコピペする事が出来ます。
ただ、このコピべの頻度が多くなると結構手間ですし、
そもそもコンポーネントの設定値の初期値を変更したいという事もある。
そこで使えるのが今回紹介するPresetという機能です。
ちなみにPresetはUnity 2018.1から追加されたようです。
Presetとは
Presetとは簡単に言うとコンポーネントの設定値を保存するためのアセットです。
使い方は簡単で、コンポーネントの右上にあるバーみたいな所を選択し、
出てきたウィンドウの左下にあるSave current to…で現在の設定値をPresetとして保存できます。
ちなみに保存されたPresetは以下のような感じで、選択すると保存されている設定値を確認出来ます。
また、設定値の反映もPresetを選択するだけです。
Presetを初期値にする
保存したPresetを選択し、Inspector上部にある
Set as {コンポーネント名} Defaultを押すと、その設定値を初期値に出来ます。
そうすると、Hierarchy上で生成したり、
Add Componentで追加した際に初期値が変わるようになります。
ただし、プログラム(AddComponent)で追加した時はPresetは適用されません。
//Presetは適用されない
gameObject.AddComponent<BoxCollider>();
ちなみに各コンポーネントの初期値にどのPresetが設定されているかは、
Project SettingsのPreset Managerから確認(変更も)が出来ます。
Presetをプログラムで使う
一応、以下のような感じでPresetの値をプログラムから反映させる事は可能ですが、
using UnityEditor.Presets;//Presetを使うのに必要 using UnityEngine; public class NewBehaviourScript : MonoBehaviour { //BoxColliderのプリセット public Preset Preset; private void Start() { //コライダーを追加して、プリセットの設定を反映 var boxCollider = gameObject.AddComponent<BoxCollider>(); Preset.ApplyTo(boxCollider); } }
PresetはUnityEditorの機能なので、実機では使えません。
なので「状況に合わせてロードするPresetを変えて、挙動を変える」みたいな使い方は出来ません。
(エディタ上だけで使う機能なら可能)
参考