private void OnDestroy() { if (s_instance == this) { s_instance = null; } }
public static void Load(string path = null) { if (path == null) { path = DEFAULT_RESOURCES_PATH; } if ((s_instance = Resources.Load <VIUProjectSettings>(DEFAULT_RESOURCES_PATH)) == null) { s_instance = CreateInstance <VIUProjectSettings>(); } }
public static void Load(string path = null) { if (path == null) { path = defaultAssetPath; } if ((s_instance = AssetDatabase.LoadAssetAtPath <VIUProjectSettings>(path)) == null) { s_instance = CreateInstance <VIUProjectSettings>(); } }
private void OnDestroy() { if (viuLogo != null) { viuLogo = null; } if (showNewVersion && toggleSkipThisVersion && !string.IsNullOrEmpty(ignoreThisVersionKey)) { showNewVersion = false; VIUProjectSettings.AddIgnoreKey(ignoreThisVersionKey); } if (windowInstance == this) { windowInstance = null; } }
public bool IsIgnored() { return(VIUProjectSettings.HasIgnoreKey(ignoreKey)); }
public void OnGUI() { #if UNITY_2017_1_OR_NEWER if (EditorApplication.isCompiling) { EditorGUILayout.LabelField("Compiling..."); return; } #endif if (viuLogo == null) { var currentDir = Path.GetDirectoryName(AssetDatabase.GetAssetPath(MonoScript.FromScriptableObject(this))); var texturePath = currentDir.Substring(0, currentDir.Length - "Scripts/Editor".Length) + "Textures/VIU_logo.png"; viuLogo = AssetDatabase.LoadAssetAtPath <Texture2D>(texturePath); } if (viuLogo != null) { GUI.DrawTexture(GUILayoutUtility.GetRect(position.width, 124, GUI.skin.box), viuLogo, ScaleMode.ScaleToFit); } if (showNewVersion) { EditorGUILayout.HelpBox("New version available:", MessageType.Warning); GUILayout.Label("Current version: " + VIUVersion.current); GUILayout.Label("New version: " + latestVersion); if (!string.IsNullOrEmpty(latestRepoInfo.body)) { GUILayout.Label("Release notes:"); releaseNoteScrollPosition = GUILayout.BeginScrollView(releaseNoteScrollPosition, GUILayout.Height(250f)); EditorGUILayout.HelpBox(latestRepoInfo.body, MessageType.None); GUILayout.EndScrollView(); } GUILayout.BeginHorizontal(); { if (GUILayout.Button(new GUIContent("Get Latest Version", "Goto " + pluginUrl))) { Application.OpenURL(pluginUrl); } GUILayout.FlexibleSpace(); toggleSkipThisVersion = GUILayout.Toggle(toggleSkipThisVersion, "Do not prompt for this version again."); } GUILayout.EndHorizontal(); } UpdateIgnoredNotifiedSettingsCount(true); if (notifiedSettingsCount > 0) { GUILayout.EndScrollView(); if (ignoredSettingsCount > 0) { if (GUILayout.Button("Clear All Ignores(" + ignoredSettingsCount + ")")) { foreach (var setting in s_settings) { setting.DeleteIgnore(); } } } GUILayout.BeginHorizontal(); { if (GUILayout.Button("Accept All(" + notifiedSettingsCount + ")")) { for (int i = 10; i >= 0 && notifiedSettingsCount > 0; --i) { foreach (var setting in s_settings) { if (!setting.SkipCheck() && !setting.IsIgnored()) { setting.AcceptRecommendValue(); } } VIUSettingsEditor.ApplySDKChanges(); UpdateIgnoredNotifiedSettingsCount(false); } } if (GUILayout.Button("Ignore All(" + notifiedSettingsCount + ")")) { foreach (var setting in s_settings) { if (!setting.SkipCheck() && !setting.IsIgnored() && !setting.IsUsingRecommendedValue()) { setting.DoIgnore(); } } } } GUILayout.EndHorizontal(); } else if (shouldNotifiedSettingsCount > 0) { EditorGUILayout.HelpBox("Some recommended settings ignored.", MessageType.Warning); GUILayout.FlexibleSpace(); if (GUILayout.Button("Clear All Ignores(" + ignoredSettingsCount + ")")) { foreach (var setting in s_settings) { setting.DeleteIgnore(); } } } else { EditorGUILayout.HelpBox("All recommended settings applied.", MessageType.Info); GUILayout.FlexibleSpace(); } VIUSettingsEditor.ApplySDKChanges(); if (VIUProjectSettings.hasChanged) { // save ignore keys VIUProjectSettings.Save(); } if (GUILayout.Button("Close")) { Close(); } }
// check vive input utility version on github private static void CheckVersionAndSettings() { if (Application.isPlaying) { EditorApplication.update -= CheckVersionAndSettings; return; } InitializeSettins(); // fetch new version info from github release site if (!completeCheckVersionFlow && VIUSettings.autoCheckNewVIUVersion) { if (webReq == null) // web request not running { if (EditorPrefs.HasKey(nextVersionCheckTimeKey) && DateTime.UtcNow < UtcDateTimeFromStr(EditorPrefs.GetString(nextVersionCheckTimeKey))) { VersionCheckLog("Skipped"); completeCheckVersionFlow = true; return; } webReq = GetUnityWebRequestAndSend(lastestVersionUrl); } if (!webReq.isDone) { return; } // On Windows, PlaterSetting is stored at \HKEY_CURRENT_USER\Software\Unity Technologies\Unity Editor 5.x EditorPrefs.SetString(nextVersionCheckTimeKey, UtcDateTimeToStr(DateTime.UtcNow.AddMinutes(versionCheckIntervalMinutes))); if (UrlSuccess(webReq)) { latestRepoInfo = JsonUtility.FromJson <RepoInfo>(GetWebText(webReq)); VersionCheckLog("Fetched"); } // parse latestVersion and ignoreThisVersionKey if (!string.IsNullOrEmpty(latestRepoInfo.tag_name)) { try { latestVersion = new System.Version(Regex.Replace(latestRepoInfo.tag_name, "[^0-9\\.]", string.Empty)); ignoreThisVersionKey = string.Format(fmtIgnoreUpdateKey, latestVersion.ToString()); } catch { latestVersion = default(System.Version); ignoreThisVersionKey = string.Empty; } } webReq.Dispose(); webReq = null; completeCheckVersionFlow = true; } VIUSettingsEditor.PackageManagerHelper.PreparePackageList(); if (VIUSettingsEditor.PackageManagerHelper.isPreparingList) { return; } showNewVersion = !string.IsNullOrEmpty(ignoreThisVersionKey) && !VIUProjectSettings.HasIgnoreKey(ignoreThisVersionKey) && latestVersion > VIUVersion.current; UpdateIgnoredNotifiedSettingsCount(false); if (showNewVersion || notifiedSettingsCount > 0) { TryOpenRecommendedSettingWindow(); } EditorApplication.update -= CheckVersionAndSettings; }
public void DeleteIgnore() { VIUProjectSettings.RemoveIgnoreKey(ignoreKey); }
public void DoIgnore() { VIUProjectSettings.AddIgnoreKey(ignoreKey); }
// check vive input utility version on github private static void CheckVersionAndSettings() { if (Application.isPlaying) { EditorApplication.update -= CheckVersionAndSettings; return; } InitializeSettins(); // fetch new version info from github release site if (!completeCheckVersionFlow) { if (www == null) // web request not running { if (EditorPrefs.HasKey(nextVersionCheckTimeKey) && DateTime.UtcNow < UtcDateTimeFromStr(EditorPrefs.GetString(nextVersionCheckTimeKey))) { completeCheckVersionFlow = true; return; } www = new WWW(lastestVersionUrl); } if (!www.isDone) { return; } if (UrlSuccess(www)) { // On Windows, PlaterSetting is stored at \HKEY_CURRENT_USER\Software\Unity Technologies\Unity Editor 5.x EditorPrefs.SetString(nextVersionCheckTimeKey, UtcDateTimeToStr(DateTime.UtcNow.AddMinutes(versionCheckIntervalMinutes))); latestRepoInfo = JsonUtility.FromJson <RepoInfo>(www.text); } // parse latestVersion and ignoreThisVersionKey if (!string.IsNullOrEmpty(latestRepoInfo.tag_name)) { try { latestVersion = new Version(Regex.Replace(latestRepoInfo.tag_name, "[^0-9\\.]", string.Empty)); ignoreThisVersionKey = string.Format(fmtIgnoreUpdateKey, latestVersion.ToString()); } catch { latestVersion = default(Version); ignoreThisVersionKey = string.Empty; } } www.Dispose(); www = null; completeCheckVersionFlow = true; } showNewVersion = !string.IsNullOrEmpty(ignoreThisVersionKey) && !VIUProjectSettings.HasIgnoreKey(ignoreThisVersionKey) && latestVersion > VIUVersion.current; if (showNewVersion || RecommendedSettingPromptCount() > 0) { TryOpenRecommendedSettingWindow(); } EditorApplication.update -= CheckVersionAndSettings; }