Example #1
0
        private static void InitializeInputWin()
        {
            //Close existing input wins except for one
            var allInputWins = (EditorInput[])Resources.FindObjectsOfTypeAll(typeof(EditorInput));

            for (int i = 0; i < allInputWins.Length; i++)
            {
                if (i == allInputWins.Length - 1)
                {
                    //Keep the last one
                    inputWin = allInputWins[i];
                }
                else
                {
                    allInputWins[i].Close();
                }
            }

            if (inputWin == null)
            {
                //If couldn't find an existing one, create a hidden EditorWindow to receive an editor event
                Rect winPos = new Rect(-5000, -5000, 1, 1);
                inputWin = CreateInstance <EditorInput>();
                inputWin.SetWindowTitle("EditorInputWin", true);

                inputWin.minSize  = winPos.size;
                inputWin.maxSize  = winPos.size;
                inputWin.position = winPos;

                inputWin.ShowWithMode(EditorWindowExtensions.ShowMode.NoShadow);
                inputWin.SetSaveToLayout(false);
                EditorMainWindow.Focus();
            }

#if UNITY_STANDALONE_WIN && (UNITY_5_0 || UNITY_5_1)
            inputWin.DisableKeyboardCapture();
            inputWin.InitKeyboardCapture();
#endif
        }