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); }; }
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); }
private void OnFocus() { PackageManager.RefreshPackages(); }