Unity2018.3以降でPreferencesやProject Settingsに独自の項目を追加する方法です。
Unity2019.2.6
PreferenceItemがObsoleteになっていた
Unity2018.2以前では、Preferencesに独自の項目を追加する際にはPreferenceItemを使っていました。
が、いつの間にかObsoleteになっていました。マニュアルを見る限り2018.3からのようです。
代わりにSettingsProviderを使うように案内されているのでこれを使用してみます。
Settings Providerを使ってPreferencesに項目を追加する
ほぼマニュアルのサンプル通りになりますが、SettingsProviderを使ってPreferencesに項目を追加するには以下のようにします。
using System.Collections.Generic; using UnityEditor; static class ExampleSettingsResiter { [SettingsProvider] public static SettingsProvider CreateExampleProvider() { var provider = new SettingsProvider("ExampleGroup/", SettingsScope.User) { // タイトル label = "Example", // GUI描画 guiHandler = searchContext => EditorGUILayout.Toggle("Example", true), // 検索時のキーワード keywords = new HashSet<string>(new[] { "Example" }) }; return provider; } }
SettingsProviderのコンストラクタの第一引数で、項目をグループ化できるようになりました。
結果は以下のようになります。
Project Settingsに項目を追加する
次にProject Settingsに項目を追加してみます。
といっても、SettingsProviderのコンストラクタの第二引数を変えるだけです。お手軽。
using System.Collections.Generic; using UnityEditor; static class ExampleSettingsResiter { [SettingsProvider] public static SettingsProvider CreateExampleProvider() { // 第二引数をSettingsScope.Projectに変更した var provider = new SettingsProvider("ExampleGroup/", SettingsScope.Project) { label = "Example", guiHandler = searchContext => EditorGUILayout.Toggle("Example", true), keywords = new HashSet<string>(new[] { "Example" }) }; return provider; } }
結果は以下のようになります。