暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

UVCPackageVersion.cs 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System;
  2. using System.Linq;
  3. using Codice.LogWrapper;
  4. using Unity.PlasticSCM.Editor.UI;
  5. using PackageManager = UnityEditor.PackageManager;
  6. namespace Unity.PlasticSCM.Editor
  7. {
  8. internal static class UVCPackageVersion
  9. {
  10. internal static string Value { get; private set; }
  11. internal static void AsyncGetVersion()
  12. {
  13. AsyncFindPackage(
  14. UVCS_PACKAGE_NAME,
  15. PackageManager.Client.List(true),
  16. OnFindPackageCompleted);
  17. }
  18. static void OnFindPackageCompleted(
  19. PackageManager.PackageInfo packageInfo)
  20. {
  21. if (packageInfo == null)
  22. return;
  23. Value = packageInfo.version;
  24. mLog.DebugFormat("OnFindPackageCompleted - Package version: {0}", Value);
  25. }
  26. static void AsyncFindPackage(
  27. string packageName,
  28. PackageManager.Requests.ListRequest listRequest,
  29. Action<PackageManager.PackageInfo> onCompleted)
  30. {
  31. EditorDispatcher.Dispatch(delegate
  32. {
  33. if (!listRequest.IsCompleted)
  34. {
  35. AsyncFindPackage(
  36. packageName, listRequest,
  37. onCompleted);
  38. return;
  39. }
  40. if (listRequest.Status == PackageManager.StatusCode.Success &&
  41. listRequest.Result != null)
  42. {
  43. PackageManager.PackageInfo packageInfo =
  44. listRequest.Result.FirstOrDefault(
  45. package => package.name == packageName);
  46. onCompleted(packageInfo);
  47. }
  48. });
  49. }
  50. const string UVCS_PACKAGE_NAME = "com.unity.collab-proxy";
  51. static readonly ILog mLog = PlasticApp.GetLogger("UVCPackageVersion");
  52. }
  53. }