- Home /
Dock Game Window In Code?
Hello! I'm trying to dock the game window next to the scene window in code. I'm doing this through what ideally would look like:
EditorWindow gameWindow = EditorWindow.GetWindow<UnityEditor.GameView>(typeof(UnityEditor.SceneView));
UnityEditor.SceneView exists, but GameView does not. The obvious solution seems to be to pass in a generic type, but I've tried reflection and it's beyond me at this point. I have code to obtain the Game Window as an EditorWindow:
static EditorWindow GetMainGameView(){
//Creates a game window. Only works if there isn't one already.
EditorApplication.ExecuteMenuItem("Window/Game");
System.Type T = System.Type.GetType("UnityEditor.GameView,UnityEditor");
System.Reflection.MethodInfo GetMainGameView = T.GetMethod("GetMainGameView",System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
System.Object Res = GetMainGameView.Invoke(null,null);
return (EditorWindow)Res;
}
Any help would be hugely appreciated. Thanks!
Answer by horatiu665 · Feb 07, 2018 at 11:33 AM
My solution based on: https://answers.unity.com/questions/1237463/how-do-i-get-a-reference-to-the-default-editor-win.html
Basically parse all the existing EditorWindow s by their title.
using System.Linq;
[MenuItem("Build/Open Build Window")]
public static void OpenBuildWindow()
{
// try to dock next to Game window
EditorWindow[] windows = Resources.FindObjectsOfTypeAll<EditorWindow>();
var gameWindow = windows.FirstOrDefault(e => e.titleContent.text.Contains("Game"));
if (gameWindow != null)
{
GetWindow<BuildScriptWindow>("Build Window", true, gameWindow.GetType());
}
else
{
GetWindow<BuildScriptWindow>("Build Window", true);
}
}
Your answer
Follow this Question
Related Questions
Unity Editor Event System 1 Answer
Changes to Object made in custom Editor Window don't persist 0 Answers
Keep equal width for panels in EditorGUILayout.HorizontalScope 0 Answers
Execute editor window scripts when project errors are present 0 Answers
Is interraction between EditorWindow and php file possible? 1 Answer