PackageManagerExtensions.RegisterExtension
Declaration
public static void RegisterExtension(PackageManager.UI.IPackageManagerExtension extension);Параметры
| Параметр | Описание |
|---|---|
| расширение | Расширение Package Manager UI. |
Описание
Зарегистрирует новое расширение Package Manager UI.
В примере создается расширение под названием Log Package Info. Кнопка появится в заголовке Package Manager details, и при нажатии будет записывать в журнал имя пакета и версию.
using UnityEngine; using UnityEditor; using UnityEditor.PackageManager.UI; using UnityEngine.UIElements; using PackageInfo = UnityEditor.PackageManager.PackageInfo;
[InitializeOnLoad] public static class PackageManagerUIExtension { static PackageManagerUIExtension() { // Register UI extension when Unity starts PackageManagerExtensions.RegisterExtension(new CustomPackageManagerExtension()); } }
// Inherit from IPackageManagerExtension to create your own extension class. public class CustomPackageManagerExtension : IPackageManagerExtension { private string selectedPackageName = ""; private Button extensionButton; // Create the button. public VisualElement CreateExtensionUI() { extensionButton = new Button(() => { if (!string.IsNullOrEmpty(selectedPackageName)) { Debug.Log($"Package Name: {selectedPackageName}"); } else { Debug.LogWarning("No package selected."); } }) { text = "Log Package Name" }; return extensionButton; } // Called when selecting a package (Uses package name) public void OnPackageSelectionChange(PackageInfo packageInfo) { if (packageInfo == null) { extensionButton.visible = false; selectedPackageName = ""; return; } extensionButton.visible = true; selectedPackageName = packageInfo.name; Debug.Log($"Selected Package: {selectedPackageName}"); } public void OnPackageAddedOrUpdated(PackageInfo packages) { } public void OnPackageRemoved(PackageInfo packages) { } }