You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

58 lines
1.7 KiB

using UnityEditor.PackageManager.UI;
using UnityEngine;
using UnityEngine.UIElements;
namespace UnityEditor.VFX
{
[UnityEditor.InitializeOnLoad]
class SamplesLinkPackageManagerExtension : IPackageManagerExtension
{
VisualElement rootVisualElement;
const string SAMPLEBUTTON_TEXT = "Open VFX Graph Samples project on Github";
const string GITHUB_URL = "https://github.com/Unity-Technologies/VisualEffectGraph-Samples";
private Button samplesButton;
private VisualElement parent;
public VisualElement CreateExtensionUI()
{
samplesButton = new Button();
samplesButton.text = SAMPLEBUTTON_TEXT;
samplesButton.style.whiteSpace = WhiteSpace.Normal; // Allow wrapping
samplesButton.clickable.clicked += () => Application.OpenURL(GITHUB_URL);
return samplesButton;
}
void IPackageManagerExtension.OnPackageSelectionChange(PackageManager.PackageInfo packageInfo)
{
if (samplesButton == null)
return;
// Prevent the button from rendering on other packages
if (samplesButton.parent != null)
parent = samplesButton.parent;
bool shouldRender = packageInfo?.name == VisualEffectGraphPackageInfo.name;
if (!shouldRender)
{
samplesButton.RemoveFromHierarchy();
}
else
{
parent.Add(samplesButton);
}
}
void IPackageManagerExtension.OnPackageAddedOrUpdated(PackageManager.PackageInfo packageInfo) { }
void IPackageManagerExtension.OnPackageRemoved(PackageManager.PackageInfo packageInfo) { }
static SamplesLinkPackageManagerExtension()
{
PackageManagerExtensions.RegisterExtension(new SamplesLinkPackageManagerExtension());
}
}
}