Presetは簡単に言えば「コンポーネントやオブジェクトの設定をアセットとして保持し、コンポーネントに簡単に反映出来る」めちゃくちゃ強力な機能です。
今回は、Unity開発に置けるワークフローの中核を担えるかもしれないこの新機能を紹介します。
【Unity】コンポーネントやアセットの設定をファイルに保存・他オブジェクトに反映できる「Preset」 - テラシュールブログ https://t.co/LQKWHGZZFC #unity 実際、超強力 pic.twitter.com/dMoHTuh2QH
— 椿 (@tsubaki_t1) 2018年1月10日
目次
設定項目の多いコンポーネントは面倒くさい?
Unityは多くの設定項目をGUIベースで操作することができます。これは非常に簡単なのですが、量が多いと面倒になります。
例えばスプライトを作る場合、多くの項目を変更する必要が出てきます。エディター拡張のインポーターを作ることで自動化も可能ですが、まぁ。
Presetで設定を記憶し、反映する手順
Presetはアセットやコンポーネントの情報を保持し、反映します。
例えばテクスチャの設定でやってみます。
アセットの設定を保存し、他のアセットに反映する!!
まずは設定を保存します。
- コンテキストメニューの隣に新しく追加されたボタンを押す(下のGif参照)
- Save Current to ...でデータを保存
あとは他のテクスチャに設定を反映させます。
- 反映するテクスチャ(複数可!!)を選択
- プリセットボタンを押します。
- 先程保存したプリセットを選択して、設定を変更
- Applyボタンを押す
コンポーネントの設定もプリセットに保存!プリセットから選ぶ!
これはテクスチャーですが、コンポーネント等にも使用できます。
上で紹介した手順と同様の手順で、コンポーネントの設定を保存し、プリセットの設定を再開することができます。
ただしPrefabとは異なり「変更している項目は変更しない訳ではない」点には注意が必要です。
例えば上の設定の場合、各プリセットは色を変更しているだけですが、同様にModeがRealtimeでもあります。その為、もしプリセットを使う対象がMixedを選択していた場合でも、Realtimeに変更されてしまう訳です。
コンポーネントやアセットの初期設定は私が決める!!!
この機能のある意味目玉機能は、このPresetの設定内容を初期設定とできる点です。
上の手順で保存したプリセットのアセットを確認すると、ヘッダーの部分に「Set as TextureImporter Default」のボタンが表示されます。
これを押すと、Presetの値がインポート時の初期設定になります。
実際に試してみました。
- まずバッテンマークのユニティちゃんアイコンをインポート
…Defaultのテクスチャがインポートされます(3Dモードなので) - Sprite設定のPresetのSet as TextureImporter Defaultを押す
- マルのユニティちゃんをインポート
…Presetの値と同じ、Spriteとして保存されます。
この機能もアセットだけでなくコンポーネントにも使えます。
例えばMeshRendererのPresetを「全くライト系を受ける気がない」設定に設定して、標準設定とした場合、以降生成されるMeshRendererの初期設定は「全くライトを受ける気がない」設定になります。
Set as *** Defaultの設定はあくまでも「初期設定」なので、既に生成したオブジェクトに対しては効果は無い点に注意です。
一貫性をもたせるならPresetよりはAssetGraphToolあたりを使うのが良いかもしれません。
なお、初期設定は、Edit > Project Settings > Preset Managerから確認できます。
関連
Unity 2018.1 betaが開始しました。
今回の機能もまだベータ中なので、変更があるかもしれません。
もうちょっと汎用的にやろうと思ったらAssetGraphToolは便利です。
Presetの機能を紹介している動画です。
www.youtube.com紹介してるスレッド