読者です 読者をやめる 読者になる 読者になる

【Unity】ProjectViewっぽいWindowをつくる

Unity エディタ拡張

若干盛った感じのタイトルですけど、見た目的にそれっぽい感じのWindowをつくってみます。

f:id:tm8r:20160413202751p:plain
こんなかんじ。

基本的には割とありふれた記述で済むんですけど、Unityにもともと入ってるテクスチャ使ったり、それをいい感じにリサイズしたりする資料があんまり見当たらなかったので。

コードは以下のような感じになります。

Unityにもともと入ってるテクスチャ使ってるのはこのあたりです。

static readonly Texture prefabIcon = EditorGUIUtility.IconContent ("PrefabNormal Icon").image;
(略)
GUILayout.Label (new GUIContent (fbxPath, modelIcon));

「PrefabNormal Icon」というのがもともと入ってるテクスチャになります。
こちらをどのように探せばいいかというのは、エディタ拡張の神様もといid:anchan828さんの以下の記事が参考になります。
anchan828.hatenablog.jp

ただ最新バージョンのUnityだと怒られちゃうので、以下のように修正します。

次にアイコンのリサイズの記述はこのあたりになります。

// アイコンサイズを変更
EditorGUIUtility.SetIconSize (iconSize);
(略)
// アイコンサイズを元に戻す
EditorGUIUtility.SetIconSize (Vector2.zero);

OnGUIの一番上でやっちゃうとHelpBoxのアイコンにも影響するので、その下に記述してます。
また、最後にVector2.zeroを指定しているのはアイコンサイズを0にしてるわけではなくて、デフォルトの動作に戻すことを意味します。
Unity - スクリプトリファレンス: EditorGUIUtility.SetIconSize

うむ。
開閉ちゃんと実装する場合はEditorGUILayout.Foldoutを使います。上のコードは完全なダミーです。手抜き。

スポンサーリンク