測八空

趣味レベルのUnityメモ

UnityのEditor拡張で「Script」フィールドを設置する方法

f:id:Sokuhatiku:20161213172618p:plain
スクリプトのデフォルトインスペクタには「Script」フィールドが付いています。こいつはシングルクリックでスクリプトの場所を表示でき、ダブルクリックでコードエディタを開ける、地味に便利な奴なのですが、Editor拡張でカスタムインスペクタを作ると消えてしまいます。

なんとか作れないものかと調べてみたら、ドンピシャな質問がUnity Answersに投稿されていました。

answers.unity3d.com

というわけで、

EditorGUI.BeginDisabledGroup(true);
EditorGUILayout.ObjectField("Script", MonoScript.FromMonoBehaviour((MonoBehaviour)target) , typeof(MonoScript), false);
EditorGUI.EndDisabledGroup();

これでカスタムインスペクタに「Script」フィールドが復活しました。


つづき:「Script」フィールドについて詳しく調べてみたらUnityの深淵に触れた - 測八空