1- using UnityEngine ;
1+ using UnityEngine ;
22using UnityEngine . SceneManagement ;
33using UnityEditor ;
44using System . Collections ;
@@ -73,17 +73,31 @@ protected void OnGUI()
7373
7474 if ( _tabIndex == 0 ) {
7575
76- ViewController controller = GameObject . FindObjectOfType < ViewController > ( ) ;
76+ ViewController [ ] controllers = GameObject . FindObjectsOfType < ViewController > ( ) ;
7777
78- if ( controller != null ) {
78+ if ( controllers . Length > 0 ) {
79+
80+ ViewController controller = null ;
81+
82+ if ( controllers . Length == 1 ) {
83+ controller = controllers [ 0 ] ;
84+ EditorGUILayout . ObjectField ( "View Controller" , controller , typeof ( ViewController ) , true ) ;
85+ } else {
86+
87+ string [ ] names = new string [ controllers . Length ] ;
88+ int i = 0 , l = names . Length ;
89+ for ( ; i < l ; ++ i ) names [ i ] = controllers [ i ] . gameObject . name ;
90+
91+ int index = System . Array . IndexOf < ViewController > ( controllers , _viewController ) ;
92+ index = EditorGUILayout . Popup ( "View Controller" , index , names ) ;
93+ controller = controllers [ index ] ;
94+ }
7995
8096 if ( controller != _viewController ) {
8197 if ( _viewControllerEditor != null ) DestroyImmediate ( _viewControllerEditor ) ;
8298 _viewControllerEditor = Editor . CreateEditor ( controller ) ;
8399 _viewController = controller ;
84100 }
85-
86- EditorGUILayout . ObjectField ( "View Controller" , _viewController , typeof ( ViewController ) , true ) ;
87101
88102 _viewControllerEditor . OnInspectorGUI ( ) ;
89103
@@ -174,4 +188,4 @@ private void DrawSettingsGUI()
174188
175189 }
176190
177- }
191+ }
0 commit comments