void ShowUserMenu(Rect dropDownRect) { var menu = new GenericMenu(); menu.AddItem(EditorGUIUtility.TrTextContent("Dismiss"), false, () => { m_SettingsProxy.dismissPreviewPackagesInUse = true; m_SettingsProxy.Save(); style.display = DisplayStyle.None; }); menu.AddSeparator(""); menu.AddItem(EditorGUIUtility.TrTextContent("Show Experimental Packages..."), false, () => { PackageManagerWindow.SelectPackageAndFilterStatic(string.Empty, PackageFilterTab.InProject, true, "experimental"); }); menu.AddSeparator(""); menu.AddItem(EditorGUIUtility.TrTextContent("Why am I seeing this?"), false, () => { m_ApplicationProxy.OpenURL($"https://docs.unity3d.com/{m_ApplicationProxy.shortUnityVersion}/Documentation/Manual/pack-exp.html"); }); menu.DropDown(dropDownRect, true); }
internal override void OnHeaderControlsGUI() { base.OnHeaderControlsGUI(); if (targets.Length > 1) { return; } var previousEnabled = GUI.enabled; PackageManifest manifest = null; if (m_Package?.state == PackageState.InDevelopment && (m_Version?.isInstalled ?? false)) { manifest = m_AssetDatabase.LoadAssetAtPath <PackageManifest>($"{m_Version.packageInfo.assetPath}/package.json"); } GUI.enabled = manifest != null; if (GUILayout.Button(Styles.editPackage, EditorStyles.miniButton)) { m_Selection.activeObject = manifest; } GUI.enabled = m_Package != null && m_Version != null; if (GUILayout.Button(Styles.viewInPackageManager, EditorStyles.miniButton)) { PackageManagerWindow.SelectPackageAndFilterStatic(m_Package.Is(PackageType.AssetStore) ? m_Version.packageUniqueId : m_Version.uniqueId); } GUI.enabled = previousEnabled; }
void ShowPreviewPackageInUseMenu(Rect rect) { var menu = new GenericMenu(); // Here hide the button : reappear after creating a new unity project. menu.AddItem(EditorGUIUtility.TrTextContent("Dismiss"), false, () => { m_SettingsProxy.dismissPreviewPackagesInUse = true; m_SettingsProxy.Save(); }); menu.AddSeparator(""); // Here we open the package manager, In-Project open and search field have experimental. menu.AddItem(EditorGUIUtility.TrTextContent("Show Experimental Packages..."), false, () => { PackageManagerWindow.SelectPackageAndFilterStatic(string.Empty, PackageFilterTab.InProject, true, "experimental"); }); menu.AddSeparator(""); // Here we go to the link explaining why we see this... menu.AddItem(EditorGUIUtility.TrTextContent("Why am I seeing this?"), false, () => { m_ApplicationProxy.OpenURL($"https://docs.unity3d.com/{m_ApplicationProxy.shortUnityVersion}/Documentation/Manual/pack-exp.html"); }); menu.DropDown(rect, true); }
internal override void OnHeaderControlsGUI() { base.OnHeaderControlsGUI(); // We want to have this button enabled even for immutable package var previousEnabled = GUI.enabled; GUI.enabled = packageState != null && packageState.isValidFile && targets.Length == 1; if (GUILayout.Button(Styles.viewInPackageManager, EditorStyles.miniButton)) { PackageManagerWindow.SelectPackageAndFilterStatic(packageState.info.packageName.completeName); } GUI.enabled = previousEnabled; }
private void RefreshSelection(IPackageVersion version = null) { var selectedDependencyPackageId = m_PackageManagerPrefs.selectedFeatureDependency; if (version == null) { var dependencies = m_FeatureVersion?.dependencies; if (dependencies?.Any() != true) { return; } if (string.IsNullOrEmpty(selectedDependencyPackageId) || !dependencies.Any(d => d.name == selectedDependencyPackageId)) { selectedDependencyPackageId = dependencies[0].name; m_PackageManagerPrefs.selectedFeatureDependency = selectedDependencyPackageId; } version = m_PackageDatabase.GetPackageInFeatureVersion(selectedDependencyPackageId); } // If the package is not installed and undiscoverable, we have to display the package's ID name (ex: com.unity.adaptiveperformance.samsung.android) // and hide other elements in the package view var showElementsInDetailsView = version != null; UIUtils.SetElementDisplay(dependencyVersion, showElementsInDetailsView); UIUtils.SetElementDisplay(dependencyLink, showElementsInDetailsView); UIUtils.SetElementDisplay(dependencyInfoBox, showElementsInDetailsView); foreach (var item in dependencyList.Children().OfType <FeatureDependencyItem>()) { item.EnableInClassList(k_SelectedClassName, item.packageName == selectedDependencyPackageId); } dependencyTitle.value = version?.displayName ?? selectedDependencyPackageId; dependencyDesc.value = version?.description ?? L10n.Tr("This package will be automatically installed with this feature."); if (!showElementsInDetailsView) { return; } var installedPackageVersion = m_PackageDatabase.GetPackage(version)?.versions.installed; dependencyVersion.value = installedPackageVersion != null && installedPackageVersion.versionId != version?.versionId ? string.Format(L10n.Tr("Version {0} (Installed {1})"), version.versionString, installedPackageVersion.versionString) : string.Format(L10n.Tr("Version {0}"), version.versionString); var featureState = GetFeatureState(version); versionState.ClearClassList(); if (featureState == FeatureState.Info) { versionState.AddToClassList(featureState.ToString().ToLower()); versionState.tooltip = string.Format(L10n.Tr("Using version {0} because at least one other package or feature depends on it"), installedPackageVersion.versionString); } var tab = PackageFilterTab.UnityRegistry; if (version.isDirectDependency) { tab = PackageFilterTab.InProject; } dependencyLink.clickable.clicked += () => PackageManagerWindow.SelectPackageAndFilterStatic(version.name, tab); UIUtils.SetElementDisplay(dependencyInfoBox, featureState == FeatureState.Customized); if (installedPackageVersion?.HasTag(PackageTag.Custom) ?? false) { m_Link = "fs-details.html"; dependencyInfoBox.text = L10n.Tr("This package has been customized."); } else { m_Link = "upm-ui-remove.html"; dependencyInfoBox.text = L10n.Tr("This package has been manually changed."); } }