UnityGame/Library/PackageCache/com.unity.multiplayer.center/Editor/OnBoarding/QuickstartPackageHandling.cs
2024-10-27 10:53:47 +03:00

41 lines
1.5 KiB
C#

using UnityEngine.UIElements;
namespace Unity.Multiplayer.Center.Onboarding
{
/// <summary>
/// A lot of the getting started content is in the package com.unity.multiplayer.center.quickstart
/// This class is responsible for handling the package and its installation
/// </summary>
internal class QuickstartIsMissingView
{
public const string PackageId = "com.unity.multiplayer.center.quickstart";
Button m_Button;
public VisualElement RootVisualElement { get; private set; }
public static bool ShouldShow => !PackageManagement.IsInstalled(PackageId);
public QuickstartIsMissingView()
{
RootVisualElement = new HelpBox("The Quickstart package is not installed, so not all the content will be available in this view.", HelpBoxMessageType.Warning);
m_Button = new Button(InstallQuickstart) {text = "Install"};
RootVisualElement.style.marginLeft = RootVisualElement.style.marginRight = RootVisualElement.style.marginTop = RootVisualElement.style.marginBottom = 8;
RootVisualElement.Add(m_Button);
}
void InstallQuickstart()
{
PackageManagement.InstallPackage(PackageId, OnInstallFinished);
}
void OnInstallFinished(bool success)
{
if (!success)
return;
if(m_Button != null)
m_Button.clicked -= InstallQuickstart;
RootVisualElement?.RemoveFromHierarchy();
}
}
}