Beispiel #1
0
        private static void OnEditorUpdate()
        {
            if (EditorApplication.isPlaying)
            {
                EditorApplication.update -= OnEditorUpdate;
                return;
            }

            if (!IsForceOpen && IsDisableAutoCheck)
            {
                EditorApplication.update -= OnEditorUpdate;
                return;
            }

            RemoteVersion     = LocalVersion;
            IsUpdateAvailable = false;

            if (RemoteRequest == null)
            {
                RemoteRequest = UnityWebRequest.Get(RemoteVersionJsonPath);
                RemoteRequest.SendWebRequest();
            }

            if (!RemoteRequest.isDone)
            {
                return;
            }

            if (!RemoteRequest.isNetworkError)
            {
                var versionObj = RemoteRequest.downloadHandler.text.JsonDeserialize <RemoteVersionInfo>();
                if (versionObj != null)
                {
                    if (!string.IsNullOrWhiteSpace(versionObj.version))
                    {
                        RemoteVersion = versionObj.version;
                    }
                }
            }

            if (Version.TryParse(LocalVersion, out Version localVersion))
            {
                if (Version.TryParse(RemoteVersion, out Version remoteVersion))
                {
                    IsUpdateAvailable = localVersion.CompareTo(remoteVersion) < 0;
                }
            }

            if (IsUpdateAvailable || IsForceOpen)
            {
                GetWindow <SdkUpdateWindow>("SDK Update", true);
            }

            EditorApplication.update -= OnEditorUpdate;
        }
        /// <summary>
        /// Returns whether or not the provided version is valid.
        /// Note: We first format the version by appending ".0" at most twice to ensure it has at least a patch version.
        /// </summary>
        /// <param name="version">The version to check.</param>
        /// <returns>True if the provided version is valid, false otherwise.</returns>
        public static bool IsValidVersion(string version)
        {
            var versionPair = FormatVersion(version);

            return(Version.TryParse(versionPair.FormattedVersion, out _));
        }