private void OnDisable()
        {
#if UNITY_2018_3_OR_NEWER
            PrefabStage.prefabStageClosing -= ReplacePrefabStageObjectsWithAssets;
#endif

            if (mainWindow == this)
            {
                mainWindow = null;
            }
        }
        private void OnDisable()
        {
#if UNITY_2018_3_OR_NEWER
            UnityEditor.Experimental.SceneManagement.PrefabStage.prefabStageClosing -= ReplacePrefabStageObjectsWithAssets;
#endif

            if (mainWindow == this)
            {
                mainWindow = null;
            }
        }
        private static void OpenActiveWindow()
        {
            if (!mainWindow)
            {
                mainWindow = GetWindow <AssetUsageDetectorWindow>();
                mainWindow.titleContent = windowTitle;
                mainWindow.minSize      = windowMinSize;
            }

            mainWindow.Show();
        }
        private static void OpenNewWindow()
        {
            Rect?windowTargetPosition = null;

            if (mainWindow)
            {
                Rect position = mainWindow.position;
                position.position   += new Vector2(50f, 50f);
                windowTargetPosition = position;
            }

            mainWindow = CreateInstance <AssetUsageDetectorWindow>();
            mainWindow.titleContent = windowTitle;
            mainWindow.minSize      = windowMinSize;

            if (windowTargetPosition.HasValue)
            {
                mainWindow.shouldRepositionSelf = true;
                mainWindow.windowTargetPosition = windowTargetPosition.Value;
            }

            mainWindow.Show(true);
        }
 private void OnFocus()
 {
     mainWindow = this;
 }