Ejemplo n.º 1
0
    static void Update()
    {
        bool show =
            (!EditorPrefs.HasKey(ignore + buildTarget) &&
             EditorUserBuildSettings.activeBuildTarget != recommended_BuildTarget) ||
            (!EditorPrefs.HasKey(ignore + showUnitySplashScreen) &&
             PlayerSettings.showUnitySplashScreen != recommended_ShowUnitySplashScreen) ||
            (!EditorPrefs.HasKey(ignore + defaultIsFullScreen) &&
             PlayerSettings.defaultIsFullScreen != recommended_DefaultIsFullScreen) ||
            (!EditorPrefs.HasKey(ignore + defaultScreenSize) &&
             (PlayerSettings.defaultScreenWidth != recommended_DefaultScreenWidth ||
              PlayerSettings.defaultScreenHeight != recommended_DefaultScreenHeight)) ||
            (!EditorPrefs.HasKey(ignore + runInBackground) &&
             PlayerSettings.runInBackground != recommended_RunInBackground) ||
            (!EditorPrefs.HasKey(ignore + displayResolutionDialog) &&
             PlayerSettings.displayResolutionDialog != recommended_DisplayResolutionDialog) ||
            (!EditorPrefs.HasKey(ignore + resizableWindow) &&
             PlayerSettings.resizableWindow != recommended_ResizableWindow) ||
            (!EditorPrefs.HasKey(ignore + fullscreenMode) &&
             PlayerSettings.d3d11FullscreenMode != recommended_FullscreenMode) ||
            (!EditorPrefs.HasKey(ignore + visibleInBackground) &&
             PlayerSettings.visibleInBackground != recommended_VisibleInBackground) ||
            (!EditorPrefs.HasKey(ignore + renderingPath) &&
             PlayerSettings.renderingPath != recommended_RenderPath) ||
            (!EditorPrefs.HasKey(ignore + colorSpace) &&
             PlayerSettings.colorSpace != recommended_ColorSpace) ||
            (!EditorPrefs.HasKey(ignore + gpuSkinning) &&
             PlayerSettings.gpuSkinning != recommended_GpuSkinning) ||
            (!EditorPrefs.HasKey(ignore + shadowCascades) &&
             QualitySettings.shadowCascades != recommended_shadowCascades) ||
            (!EditorPrefs.HasKey(ignore + pixelLightCount) &&
             QualitySettings.pixelLightCount != recommended_pixelLightCount) ||
#if false
            (!EditorPrefs.HasKey(ignore + singlePassStereoRendering) &&
             PlayerSettings.singlePassStereoRendering != recommended_SinglePassStereoRendering) ||
#endif
            forceShow;

        if (show)
        {
            window         = GetWindow <TheLabRenderer_Settings>(true);
            window.minSize = new Vector2(375, 600);
            //window.title = "The Lab Renderer Settings";
        }

        // Switch to native OpenVR support.
        var updated = false;

        if (!PlayerSettings.virtualRealitySupported)
        {
            PlayerSettings.virtualRealitySupported = true;
            updated = true;
        }

        /*var devices = UnityEditorInternal.VR.VREditor.GetVREnabledDevices(BuildTargetGroup.Standalone);
         * var hasOpenVR = false;
         * foreach (var device in devices)
         *      if (device.ToLower() == "openvr")
         *              hasOpenVR = true;
         *
         * if (!hasOpenVR)
         * {
         *      string[] newDevices;
         *      if (updated)
         *      {
         *              newDevices = new string[] { "OpenVR" };
         *      }
         *      else
         *      {
         *              newDevices = new string[devices.Length + 1];
         *              for (int i = 0; i < devices.Length; i++)
         *                      newDevices[i] = devices[i];
         *              newDevices[devices.Length] = "OpenVR";
         *              updated = true;
         *      }
         *      UnityEditorInternal.VR.VREditor.SetVREnabledDevices(BuildTargetGroup.Standalone, newDevices);
         * }*/

        if (updated)
        {
            Debug.Log("Switching to native OpenVR support.");
        }

        var dlls = new string[]
        {
            "Plugins/x86/openvr_api.dll",
            "Plugins/x86_64/openvr_api.dll"
        };

        foreach (var path in dlls)
        {
            if (!File.Exists(Application.dataPath + "/" + path))
            {
                continue;
            }

            if (AssetDatabase.DeleteAsset("Assets/" + path))
            {
                Debug.Log("Deleting " + path);
            }
            else
            {
                Debug.Log(path + " in use; cannot delete.  Please restart Unity to complete upgrade.");
            }
        }

        EditorApplication.update -= Update;
    }
    static void Update()
    {
        bool show =
            (!EditorPrefs.HasKey(ignore + buildTarget) &&
                EditorUserBuildSettings.activeBuildTarget != recommended_BuildTarget) ||
            (!EditorPrefs.HasKey(ignore + showUnitySplashScreen) &&
                PlayerSettings.showUnitySplashScreen != recommended_ShowUnitySplashScreen) ||
            (!EditorPrefs.HasKey(ignore + defaultIsFullScreen) &&
                PlayerSettings.defaultIsFullScreen != recommended_DefaultIsFullScreen) ||
            (!EditorPrefs.HasKey(ignore + defaultScreenSize) &&
                (PlayerSettings.defaultScreenWidth != recommended_DefaultScreenWidth ||
                PlayerSettings.defaultScreenHeight != recommended_DefaultScreenHeight)) ||
            (!EditorPrefs.HasKey(ignore + runInBackground) &&
                PlayerSettings.runInBackground != recommended_RunInBackground) ||
            (!EditorPrefs.HasKey(ignore + displayResolutionDialog) &&
                PlayerSettings.displayResolutionDialog != recommended_DisplayResolutionDialog) ||
            (!EditorPrefs.HasKey(ignore + resizableWindow) &&
                PlayerSettings.resizableWindow != recommended_ResizableWindow) ||
            (!EditorPrefs.HasKey(ignore + fullscreenMode) &&
                PlayerSettings.d3d11FullscreenMode != recommended_FullscreenMode) ||
            (!EditorPrefs.HasKey(ignore + visibleInBackground) &&
                PlayerSettings.visibleInBackground != recommended_VisibleInBackground) ||
            (!EditorPrefs.HasKey(ignore + renderingPath) &&
                PlayerSettings.renderingPath != recommended_RenderPath) ||
            (!EditorPrefs.HasKey(ignore + colorSpace) &&
                PlayerSettings.colorSpace != recommended_ColorSpace) ||
            (!EditorPrefs.HasKey(ignore + gpuSkinning) &&
                PlayerSettings.gpuSkinning != recommended_GpuSkinning) ||
            (!EditorPrefs.HasKey(ignore + shadowCascades) &&
                QualitySettings.shadowCascades != recommended_shadowCascades) ||
            (!EditorPrefs.HasKey(ignore + pixelLightCount) &&
                QualitySettings.pixelLightCount != recommended_pixelLightCount) ||
        #if false
            (!EditorPrefs.HasKey(ignore + singlePassStereoRendering) &&
                PlayerSettings.singlePassStereoRendering != recommended_SinglePassStereoRendering) ||
        #endif
            forceShow;

        if (show)
        {
            window = GetWindow<TheLabRenderer_Settings>(true);
            window.minSize = new Vector2(375, 600);
            //window.title = "The Lab Renderer Settings";
        }

        // Switch to native OpenVR support.
        var updated = false;

        if (!PlayerSettings.virtualRealitySupported)
        {
            PlayerSettings.virtualRealitySupported = true;
            updated = true;
        }

        var devices = UnityEditorInternal.VR.VREditor.GetVREnabledDevices(BuildTargetGroup.Standalone);
        var hasOpenVR = false;
        foreach (var device in devices)
            if (device.ToLower() == "openvr")
                hasOpenVR = true;

        if (!hasOpenVR)
        {
            string[] newDevices;
            if (updated)
            {
                newDevices = new string[] { "OpenVR" };
            }
            else
            {
                newDevices = new string[devices.Length + 1];
                for (int i = 0; i < devices.Length; i++)
                    newDevices[i] = devices[i];
                newDevices[devices.Length] = "OpenVR";
                updated = true;
            }
            UnityEditorInternal.VR.VREditor.SetVREnabledDevices(BuildTargetGroup.Standalone, newDevices);
        }

        if (updated)
            Debug.Log("Switching to native OpenVR support.");

        var dlls = new string[]
        {
            "Plugins/x86/openvr_api.dll",
            "Plugins/x86_64/openvr_api.dll"
        };

        foreach (var path in dlls)
        {
            if (!File.Exists(Application.dataPath + "/" + path))
                continue;

            if (AssetDatabase.DeleteAsset("Assets/" + path))
                Debug.Log("Deleting " + path);
            else
            {
                Debug.Log(path + " in use; cannot delete.  Please restart Unity to complete upgrade.");
            }
        }

        EditorApplication.update -= Update;
    }