ZMWSLI0-SL2021-GR11/Projekt/MWSProjekt/Library/PackageCache/com.unity.terrain-tools@3.0.2-preview.3/Editor/SamplesLinkPackageManagerExtension.cs

56 lines
1.7 KiB
C#
Raw Normal View History

2021-07-05 21:20:56 +02:00
#if UNITY_2018_2_OR_NEWER
#define NEW_PACKMAN
using System;
using UnityEditor.PackageManager;
using UnityEditor.PackageManager.UI;
using UnityEngine;
#if UNITY_2019_1_OR_NEWER
using UnityEngine.UIElements;
#else
using UnityEngine.Experimental.UIElements;
#endif
[UnityEditor.InitializeOnLoad]
internal class SamplesLinkPackageManagerExtension : IPackageManagerExtension {
VisualElement rootVisualElement;
const string SAMPLEBUTTON_TEXT = "Download Asset Samples from Asset Store";
const string ASSETSTORE_URL = "http://u3d.as/1wLg";
const string TERRAIN_TOOLS_NAME = "com.unity.terrain-tools";
private Button samplesButton;
private VisualElement parent;
public VisualElement CreateExtensionUI() {
samplesButton = new Button();
samplesButton.text = SAMPLEBUTTON_TEXT;
samplesButton.clickable.clicked += () => Application.OpenURL(ASSETSTORE_URL);
return samplesButton;
}
static SamplesLinkPackageManagerExtension() {
PackageManagerExtensions.RegisterExtension(new SamplesLinkPackageManagerExtension());
}
void IPackageManagerExtension.OnPackageSelectionChange(PackageInfo packageInfo) {
// Prevent the button from rendering on other packages
if (samplesButton.parent != null)
parent = samplesButton.parent;
bool shouldRender = packageInfo?.name == TERRAIN_TOOLS_NAME;
if (!shouldRender) {
samplesButton.RemoveFromHierarchy();
}
else {
parent.Add(samplesButton);
}
}
void IPackageManagerExtension.OnPackageAddedOrUpdated(PackageInfo packageInfo) {}
void IPackageManagerExtension.OnPackageRemoved(PackageInfo packageInfo) {}
}
#endif