123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- using System;
-
- using UnityEngine;
-
- namespace Unity.PlasticSCM.Editor.UI
- {
- internal class EditorVersion
- {
- internal int Year;
- internal int Release;
- internal int Update;
-
- EditorVersion(int year, int release, int update)
- {
- Year = year;
- Release = release;
- Update = update;
- }
-
-
- public override string ToString()
- {
- return String.Format("{0}.{1}.{2}", Year, Release, Update);
- }
-
- internal static bool IsCurrentEditorOlderThan(string version)
- {
- return IsEditorOlderThan(Application.unityVersion, version);
- }
-
- internal static bool IsEditorOlderThan(string versionA, string versionB)
- {
- #if UNITY_2017_1_OR_NEWER
- var editorA = Parse(versionA);
- var editorB = Parse(versionB);
- if (editorA.Year == editorB.Year)
- {
- if (editorA.Release == editorB.Release)
- {
- return editorA.Update < editorB.Update;
- }
- return editorA.Release < editorB.Release;
- }
- return editorA.Year < editorB.Year;
- #else
- return false;
- #endif
- }
-
- static int ParseUpdateString(string version)
- {
- int pos = 0;
- char[] characters = version.ToCharArray();
- while (Char.IsDigit(characters[pos]))
- {
- ++pos;
- }
- return int.Parse(version.Substring(0, pos));
- }
-
- static EditorVersion Parse(string version)
- {
- var versions = version.Split('.');
-
- var year = 0;
- year = int.Parse(versions[0]);
- var release = 0;
- release = int.Parse(versions[1]);
- var update = 0;
- update = ParseUpdateString(versions[2]);
-
- return new EditorVersion(year, release, update);
- }
- }
- }
|