自分用メモ。 随時更新。
ソースコード
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; public class BasicWindow : EditorWindow { [MenuItem("Window/Basic Window")] private static void Open() { var window = GetWindow<BasicWindow>("Basic Window"); } private void OnEnable() { EditorApplication.playmodeStateChanged += OnChangePlayMode; } private void OnDisable() { EditorApplication.playmodeStateChanged -= OnChangePlayMode; } private void OnChangePlayMode(){ } private void OnGUI() { DrawToolbar(); } /// <summary> /// ツールバーを描画する /// </summary> private void DrawToolbar() { using (new EditorGUILayout.HorizontalScope(EditorStyles.toolbar, GUILayout.ExpandWidth(true))) { GUILayout.Button("button", EditorStyles.toolbarButton); GUILayout.Toggle(true, "toggle", EditorStyles.toolbarButton); EditorGUILayout.IntPopup( 0, new string[] { "popup" }, new int[] { 0 }, EditorStyles.toolbarPopup); EditorGUILayout.IntPopup( 0, new string[] { "dropdown" }, new int[] { 0 }, EditorStyles.toolbarDropDown); EditorGUILayout.TextField( "", EditorStyles.toolbarTextField, GUILayout.Width( 150 ) ); } } /// <summary> /// Selectionが切り替わった時に呼ばれる /// </summary> private void OnSelectionChange() { Debug.Log(Selection.activeObject); // 表示内容を変更し、即座に反映したい場合にはRepaint() Repaint(); } private void Update() { // 他のwindowがフォーカスされているときの処理 if (focusedWindow.titleContent.text == "Hierarchy") { } } }
結果