Example #1
0
        internal static void ListXrtkPackages()
        {
            var progress = 0f;

            EditorUtility.DisplayProgressBar("Searching upm packages...", "Searching...", progress++ / 100f);
            var request      = Client.SearchAll(false);
            var xrtkPackages = new List <PackageInfo>();

            EditorApplication.update += Progress;

            void Progress()
            {
                switch (request.Status)
                {
                case StatusCode.Success:
                    xrtkPackages.AddRange(request.Result.Where(package => package.name.Contains("com.xrtk.")));
                    break;

                case StatusCode.InProgress:
                    EditorUtility.DisplayProgressBar("Searching upm packages...", "Searching...", progress += 0.0025f);
                    if (progress > 1f)
                    {
                        progress = 0f;
                    }
                    break;

                default:     // case StatusCode.Failure:
                    if (request.Status >= StatusCode.Failure)
                    {
                        Debug.Log(request.Error.message);
                    }
                    break;
                }

                if (request.IsCompleted)
                {
                    EditorUtility.ClearProgressBar();
                    EditorApplication.update -= Progress;
                    PackagePickerWindow.ShowPackageWindow(xrtkPackages);
                }
            }
        }
Example #2
0
        internal static void ShowPackageWindow(List <PackageInfo> xrtkPackages)
        {
            if (window != null)
            {
                window.Close();
            }

            if (xrtkPackages == null ||
                xrtkPackages.Count == 0)
            {
                MixedRealityPackageSeed.ListXrtkPackages();
                return;
            }

            Packages.Clear();

            foreach (var package in xrtkPackages)
            {
                switch (package.name)
                {
                case string _ when package.name.Equals("com.xrtk.sdk"):
                    Packages.Insert(0, new Tuple <PackageInfo, bool>(package, true));

                    break;

                default:
                    Packages.Add(new Tuple <PackageInfo, bool>(package, true));
                    break;
                }
            }

            var height = MIN_VERTICAL_SIZE + ITEM_HEIGHT * xrtkPackages.Count;

            isNew               = true;
            window              = CreateInstance <PackagePickerWindow>();
            window.minSize      = new Vector2(MIN_HORIZONTAL_SIZE, height);
            window.maxSize      = new Vector2(MIN_HORIZONTAL_SIZE, height);
            window.position     = new Rect(0f, 0f, MIN_HORIZONTAL_SIZE, height);
            window.titleContent = new GUIContent("XRTK Packages");
            window.ShowUtility();
        }