FBX Importerなどで使われているタブ表示を実装する方法です。
やりたいこと
こういうやつです。
実装
ソースコードです。
using UnityEngine; using UnityEditor; using System.Linq; public class EditorTabSample : EditorWindow { enum Tab { Sample1, Sample2, SampleLongLongTab, } private Tab _tab = Tab.Sample1; [MenuItem("Window/Tab Sample")] private static void Open() { var window = GetWindow<EditorTabSample>("Tab Sample"); } private void OnGUI() { using (new EditorGUILayout.HorizontalScope()) { GUILayout.FlexibleSpace(); // タブを描画する _tab = (Tab)GUILayout.Toolbar((int)_tab, Styles.TabToggles, Styles.TabButtonStyle, Styles.TabButtonSize); GUILayout.FlexibleSpace(); } } // Style定義 private static class Styles { private static GUIContent[] _tabToggles = null; public static GUIContent[] TabToggles{ get { if (_tabToggles == null) { _tabToggles = System.Enum.GetNames(typeof(Tab)).Select(x => new GUIContent(x)).ToArray(); } return _tabToggles; } } public static readonly GUIStyle TabButtonStyle = "LargeButton"; // GUI.ToolbarButtonSize.FitToContentsも設定できる public static readonly GUI.ToolbarButtonSize TabButtonSize = GUI.ToolbarButtonSize.Fixed; } }
今回はWindowにタブを表示しています。
説明はコメントに書いた通りです。
結果
上記のWindowを開いた結果です。
正常にタブが表示されていることが確認できました。
参考
今回情報が少なかったので、C# ReferenceのLightingウィンドウのソースコードを参考にさせていただきました。