예제 #1
0
        private void OnGUI()
        {
            PackageManager.RefreshPackages();

            if (PackageManager.ready)
            {
                OnManagerGUI();
            }
            else
            {
                OnNotConfiguredGUI();
            }
        }
        static PackageProjectDrawer()
        {
            EditorApplication.projectWindowItemOnGUI += (string guid, Rect rect) =>
            {
                if (rect.height > 50)
                {
                    return;
                }

                var path = AssetDatabase.GUIDToAssetPath(guid);

                if (!path.StartsWith(Helpers.CODEPACKAGES_FOLDER))
                {
                    return;
                }

                if (path.Length == Helpers.CODEPACKAGES_FOLDER.Length)
                {
                    if (!string.IsNullOrEmpty(PackageManager.packagesDirectory))
                    {
                        if (!PackageManager.ready)
                        {
                            PackageManager.RefreshPackages();
                        }

                        var buttonRect = new Rect(rect)
                        {
                            xMin = rect.xMax - 20, width = 20, height = 20
                        };
                        if (PackageManager.changedInstalledPackages.Length > 0)
                        {
                            if (GUI.Button(buttonRect, "", Content.warnIconSmall))
                            {
                                PackageManagerWindow.ShowPackageManager();
                            }
                        }
                        else
                        {
                            var color = GUI.color;
                            GUI.color = new Color(color.r, color.g, color.b, 0.35f);
                            if (GUI.Button(buttonRect, "", Content.infoIconSmall))
                            {
                                PackageManagerWindow.ShowPackageManager();
                            }
                            GUI.color = color;
                        }
                    }

                    return;
                }

                var pathStart   = Helpers.CODEPACKAGES_FOLDER.Length + 1;
                var projectName = Helpers.currentPackageName;
                if (string.Compare(path, pathStart, projectName, 0, projectName.Length) == 0)
                {
                    return;
                }

                GUI.Box(rect, "", Content.projectWindowGreyOverlay);
            };
        }
예제 #3
0
        private void OnManagerGUI()
        {
            using (new GUILayout.HorizontalScope(EditorStyles.toolbar))
            {
                GUILayout.Space(1);
                if (GUILayout.Button("Refresh", EditorStyles.toolbarButton))
                {
                    PackageManager.RefreshPackages();
                }

                GUILayout.FlexibleSpace();

                GUILayout.Label(PackageManager.packagesDirectory, EditorStyles.toolbarButton);
                GUILayout.Space(5);
                if (GUILayout.Button("Reset", EditorStyles.toolbarButton))
                {
                    PackageManager.packagesDirectory = null;
                }
            }

            if (m_packageNamesToImport != null && m_packageNamesToImport.Length > 0)
            {
                using (new GUILayout.HorizontalScope(EditorStyles.helpBox))
                {
                    GUILayout.FlexibleSpace();
                    using (new GUILayout.VerticalScope())
                    {
                        using (new GUILayout.HorizontalScope())
                        {
                            var oldColor = GUI.color;
                            GUI.color = Color.green;
                            if (GUILayout.Button("Import " + m_packageNamesToImport[0], GUILayout.Width(220), GUILayout.Height(22)))
                            {
                                var packageName = m_packageNamesToImport[0];
                                m_packageNamesToImport = m_packageNamesToImport.Skip(1).ToArray();

                                EditorApplication.delayCall += () => PackageManager.ImportPackage(packageName);
                            }
                            GUI.color = oldColor;

                            if (GUILayout.Button("Cancel", GUILayout.Width(60), GUILayout.Height(22)))
                            {
                                m_packageNamesToImport = new string[0];
                            }
                        }

                        for (int i = 0; i < m_packageNamesToImport.Length; i++)
                        {
                            GUILayout.Label(m_packageNamesToImport[i], Content.centeredMiniLabel);
                        }
                    }
                    GUILayout.FlexibleSpace();
                }
            }

            DrawList("Update available", PackageManager.changedInstalledPackages, "Update", Color.yellow, PrepareImportPackage);
            DrawList("Installed", PackageManager.actualInstalledPackages, "Uninstall", Color.white, package =>
            {
                if (EditorUtility.DisplayDialog("Uninstall package", "Are you really want to uninstall " + package.name + " package", "Uninstall", "Cancel"))
                {
                    EditorApplication.delayCall += () => PackageManager.UninstallPackage(package.name);
                }
            });
            DrawList("Not Instaled", PackageManager.notInstalledPackages, "Install", Color.white, PrepareImportPackage);
        }
예제 #4
0
 private void OnFocus()
 {
     PackageManager.RefreshPackages();
 }