예제 #1
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);
        }
예제 #2
0
 private void OnFocus()
 {
     PackageManager.RefreshPackages();
 }