[Unityエディター拡張] タイトルバーを追加する

タイトルバー…インスペクタにあるこういうやつ

を追加したいときは、InspectorTitlebarを使います。

EditorGUILayoutSample obj = target as EditorGUILayoutSample;
obj.folderValue = EditorGUILayout.InspectorTitlebar (obj.folderValue, obj);
if (obj.folderValue) {
	obj.name = EditorGUILayout.TextField ("name", obj.name);
	obj.address = EditorGUILayout.TextArea (obj.address, GUILayout.Height (50));
}

とすると、

こんな感じに。

InspectorTitlebarの戻り値がtrueのときは、このフォルダが開いているということで、

追加で表示するフィールドを設定します。

この第二引数に渡すのはUnityEngine.Objectを継承しているオブジェクト。

これによってUnityのほうで自動的に適切な描画をしてくれるようです。

そのためのものなので、それによって特に値が変更されたりはしないよう。

試しにtransformを渡すと、

obj.folderValue = EditorGUILayout.InspectorTitlebar (obj.folderValue, obj.transform);

こんな感じに。

使い方としては、InspectorTitlebarに渡したオブジェクトに関連する変更を、その下のフィールドでするという感じなんでしょうね。もちろん。

ちなみに第二引数はObjectの配列の場合もあるようなので、試してみたのですが、

obj.folderValue = EditorGUILayout.InspectorTitlebar (obj.folderValue, new UnityEngine.Object[]{obj, obj.transform});

こう表示が変わるだけで、どう使うのか今ひとつわかりませんでしたね…

調べてもわからないのでとりあえずそっとしておく感じにする。

スポンサーリンク

シェアする

スポンサーリンク