ProjectWindowにアイコンなどを表示する場合は以下のデリゲートを用いる
EditorApplication-projectWindowItemOnGUI - Unity スクリプトリファレンス
EditorWindow
を継承したくないので、InitializeOnLoadMethod
を利用する
スクリプト
サンプルとしてguidを最後に表示する拡張のスクリプトを貼っておく
using UnityEngine; namespace UnityEditor { public class ProjectWindowExtension { [InitializeOnLoadMethod] private static void ProjectWindow() { EditorApplication.projectWindowItemOnGUI += ProjectWindowGUI; } private static readonly GUIContent cacheContent = new GUIContent(); private static Vector2 cacheSize; private static GUIStyle cacheStyle; private const int OFFSET = 5; private static void ProjectWindowGUI(string guid, Rect rect) { if (string.IsNullOrEmpty(guid)) return; if (cacheStyle == null) cacheStyle = (GUIStyle) "AssetLabel"; cacheContent.text = guid; cacheSize = cacheStyle.CalcSize(cacheContent); cacheSize.x += OFFSET; rect.xMin = rect.xMax - cacheSize.x; rect.width = cacheSize.x - OFFSET; GUI.Label(rect, cacheContent, cacheStyle); } } }
これを Unity に入れると以下のように表示される