private void SelectWindow(FlowWindow window) { for (int i = 0; i < window.states.Length; ++i) window.SetCompletedState(i, CompletedState.NotReady); if (window.compiled == false) { this.ShowNotification(new GUIContent("You need to compile this window to use `Select` command")); } else { if (Directory.Exists(window.compiledDirectory) == false) { window.compiledDirectory = Path.GetDirectoryName(AssetDatabase.GetAssetPath(FlowSystem.GetData())) + "/" + window.compiledNamespace.Replace(FlowSystem.GetData().namespaceName, string.Empty) + "/" + window.compiledNamespace.Replace(".", "/"); } Selection.activeObject = AssetDatabase.LoadAssetAtPath(window.compiledDirectory.Trim('/'), typeof(Object)); EditorGUIUtility.PingObject(Selection.activeObject); //if (window.screen == null) { window.SetCompletedState(0, CompletedState.NotReady); var files = AssetDatabase.FindAssets("t:GameObject", new string[] { window.compiledDirectory.Trim('/') + "/Screens" }); foreach (var file in files) { var path = AssetDatabase.GUIDToAssetPath(file); var go = AssetDatabase.LoadAssetAtPath(path, typeof(GameObject)) as GameObject; if (go != null) { var screen = go.GetComponent<WindowBase>(); if (screen != null) { window.SetScreen(screen); window.SetCompletedState(0, CompletedState.Ready); var lWin = screen as LayoutWindowType; if (lWin != null) { if (lWin.layout.layout != null) { window.SetCompletedState(1, CompletedState.Ready); window.SetCompletedState(2, (lWin.layout.components.Any((c) => c.component == null) == true) ? CompletedState.ReadyButWarnings : CompletedState.Ready); } else { window.SetCompletedState(0, CompletedState.NotReady); window.SetCompletedState(1, CompletedState.NotReady); window.SetCompletedState(2, CompletedState.NotReady); } } else { window.SetCompletedState(1, CompletedState.Ready); } break; } else { window.SetCompletedState(0, CompletedState.ReadyButWarnings); } } } //} } }