Skip to content

Commit c4b8202

Browse files
authored
Added support for switching active ViewController in EditorWindow
1 parent fa1d7bf commit c4b8202

1 file changed

Lines changed: 20 additions & 6 deletions

File tree

Scripts/Editor/UViewWindow.cs

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using UnityEngine;
1+
using UnityEngine;
22
using UnityEngine.SceneManagement;
33
using UnityEditor;
44
using 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

Comments
 (0)