Bez popisu
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

EditorVersion.cs 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. using System;
  2. using UnityEngine;
  3. namespace Unity.PlasticSCM.Editor.UI
  4. {
  5. internal class EditorVersion
  6. {
  7. internal int Year;
  8. internal int Release;
  9. internal int Update;
  10. EditorVersion(int year, int release, int update)
  11. {
  12. Year = year;
  13. Release = release;
  14. Update = update;
  15. }
  16. public override string ToString()
  17. {
  18. return String.Format("{0}.{1}.{2}", Year, Release, Update);
  19. }
  20. internal static bool IsCurrentEditorOlderThan(string version)
  21. {
  22. return IsEditorOlderThan(Application.unityVersion, version);
  23. }
  24. internal static bool IsEditorOlderThan(string versionA, string versionB)
  25. {
  26. #if UNITY_2017_1_OR_NEWER
  27. var editorA = Parse(versionA);
  28. var editorB = Parse(versionB);
  29. if (editorA.Year == editorB.Year)
  30. {
  31. if (editorA.Release == editorB.Release)
  32. {
  33. return editorA.Update < editorB.Update;
  34. }
  35. return editorA.Release < editorB.Release;
  36. }
  37. return editorA.Year < editorB.Year;
  38. #else
  39. return false;
  40. #endif
  41. }
  42. static int ParseUpdateString(string version)
  43. {
  44. int pos = 0;
  45. char[] characters = version.ToCharArray();
  46. while (Char.IsDigit(characters[pos]))
  47. {
  48. ++pos;
  49. }
  50. return int.Parse(version.Substring(0, pos));
  51. }
  52. static EditorVersion Parse(string version)
  53. {
  54. var versions = version.Split('.');
  55. var year = 0;
  56. year = int.Parse(versions[0]);
  57. var release = 0;
  58. release = int.Parse(versions[1]);
  59. var update = 0;
  60. update = ParseUpdateString(versions[2]);
  61. return new EditorVersion(year, release, update);
  62. }
  63. }
  64. }