@@ -53,7 +53,7 @@ static ToolboxEditorToolbar()
5353
5454 private static IEnumerator Initialize ( )
5555 {
56- while ( ToolboxEditorToolbar . toolbar == null )
56+ while ( toolbar == null )
5757 {
5858 var toolbars = Resources . FindObjectsOfTypeAll ( toolbarType ) ;
5959 if ( toolbars == null || toolbars . Length == 0 )
@@ -63,15 +63,15 @@ private static IEnumerator Initialize()
6363 }
6464 else
6565 {
66- ToolboxEditorToolbar . toolbar = toolbars [ 0 ] ;
66+ toolbar = toolbars [ 0 ] ;
6767 }
6868 }
6969
7070#if UNITY_2021_1_OR_NEWER
71- var rootField = ToolboxEditorToolbar . toolbar . GetType ( ) . GetField ( "m_Root" , BindingFlags . NonPublic | BindingFlags . Instance ) ;
72- var root = rootField . GetValue ( ToolboxEditorToolbar . toolbar ) as VisualElement ;
73- var toolbar = root . Q ( "ToolbarZoneLeftAlign" ) ;
71+ var rootField = toolbar . GetType ( ) . GetField ( "m_Root" , BindingFlags . NonPublic | BindingFlags . Instance ) ;
72+ var root = rootField . GetValue ( toolbar ) as VisualElement ;
7473
74+ var toolbarLeftZone = root . Q ( "ToolbarZoneLeftAlign" ) ;
7575 var element = new VisualElement ( )
7676 {
7777 style =
@@ -83,10 +83,25 @@ private static IEnumerator Initialize()
8383
8484 var container = new IMGUIContainer ( ) ;
8585 container . style . flexGrow = 1 ;
86- container . onGUIHandler += OnGui ;
87-
86+ container . onGUIHandler += OnGuiLeft ;
8887 element . Add ( container ) ;
89- toolbar . Add ( element ) ;
88+ toolbarLeftZone . Add ( element ) ;
89+
90+ var toolbarRightZone = root . Q ( "ToolbarZoneRightAlign" ) ;
91+ var rightElement = new VisualElement ( )
92+ {
93+ style =
94+ {
95+ flexGrow = 1 ,
96+ flexDirection = FlexDirection . Row ,
97+ }
98+ } ;
99+
100+ var rightContainer = new IMGUIContainer ( ) ;
101+ rightContainer . style . flexGrow = 1 ;
102+ rightContainer . onGUIHandler += OnGuiRight ;
103+ rightElement . Add ( rightContainer ) ;
104+ toolbarRightZone . Add ( rightElement ) ;
90105#else
91106#if UNITY_2020_1_OR_NEWER
92107 var backend = guiBackend . GetValue ( toolbar ) ;
@@ -101,23 +116,23 @@ private static IEnumerator Initialize()
101116 var container = elements [ 0 ] as IMGUIContainer ;
102117#endif
103118 var handler = onGuiHandler . GetValue ( container ) as Action ;
104- handler -= OnGui ;
105- handler += OnGui ;
119+ handler -= OnGuiLeft ;
120+ handler += OnGuiLeft ;
106121 onGuiHandler . SetValue ( container , handler ) ;
107122#endif
108123 }
109124
110- private static void OnGui ( )
125+ private static void OnGuiLeft ( )
111126 {
112- if ( ! IsToolbarAllowed || ! IsToolbarValid )
127+ if ( ! IsToolbarAllowed || ! IsLeftToolbarValid )
113128 {
114129 return ;
115130 }
116131
117132#if UNITY_2021_1_OR_NEWER
118133 using ( new GUILayout . HorizontalScope ( ) )
119134 {
120- OnToolbarGui . Invoke ( ) ;
135+ OnToolbarGuiLeft ( ) ;
121136 }
122137#else
123138 var screenWidth = EditorGUIUtility . currentViewWidth ;
@@ -139,12 +154,25 @@ private static void OnGui()
139154 {
140155 using ( new GUILayout . HorizontalScope ( ) )
141156 {
142- OnToolbarGui ? . Invoke ( ) ;
157+ OnToolbarGuiLeft ( ) ;
143158 }
144159 }
145160#endif
146161 }
147162
163+ private static void OnGuiRight ( )
164+ {
165+ if ( ! IsToolbarAllowed || ! IsRightToolbarValid )
166+ {
167+ return ;
168+ }
169+
170+ using ( new EditorGUILayout . HorizontalScope ( ) )
171+ {
172+ OnToolbarGuiRight ( ) ;
173+ }
174+ }
175+
148176 public static void Repaint ( )
149177 {
150178 if ( toolbar == null )
@@ -156,11 +184,17 @@ public static void Repaint()
156184 }
157185
158186 public static bool IsToolbarAllowed { get ; set ; } = true ;
159- public static bool IsToolbarValid => toolbar != null && OnToolbarGui != null ;
187+ public static bool IsLeftToolbarValid => toolbar != null && OnToolbarGuiLeft != null ;
188+ public static bool IsRightToolbarValid => toolbar != null && OnToolbarGuiRight != null ;
160189 public static float FromToolsOffset { get ; set ; } = 400.0f ;
161190 public static float FromStripOffset { get ; set ; } = 150.0f ;
162191
192+ #pragma warning disable 0067
193+ [ Obsolete ( "Use OnToolbarGuiLeft instead" ) ]
163194 public static event Action OnToolbarGui ;
195+ #pragma warning restore 0067
196+ public static event Action OnToolbarGuiLeft ;
197+ public static event Action OnToolbarGuiRight ;
164198
165199 private static class Style
166200 {
0 commit comments