Files
2D-Plattformer-Example/Assets/Tutorials/5_BuildAndPublish/Criteria/PublishCriteria.cs
T
2026-04-30 00:53:30 +02:00

70 lines
2.5 KiB
C#

using System.Linq;
using Unity.Play.Publisher.Editor;
using UnityEngine;
namespace Unity.Tutorials
{
/// <summary>
/// Contaisn all the callbacks needed for the Build And Publish tutorial
/// </summary>
[CreateAssetMenu(fileName = "PublishCriteria", menuName = "Tutorials/Microgame/PublishCriteria")]
class PublishCriteria : ScriptableObject
{
static PublisherWindow publisherWindow;
public bool IsNotDisplayingFirstTimeInstructions()
{
if (!IsWebGLPublisherOpen()) { return false; }
return (!string.IsNullOrEmpty(publisherWindow.CurrentTab) && publisherWindow.CurrentTab != PublisherWindow.TabIntroduction);
}
public bool IsUserLoggedIn()
{
if (!IsWebGLPublisherOpen()) { return false; }
return (publisherWindow.CurrentTab != PublisherWindow.TabNotLoggedIn);
}
public bool IsBuildBeingUploaded()
{
if (!IsWebGLPublisherOpen()) { return false; }
switch (PublisherUtils.GetCurrentPublisherState(publisherWindow))
{
case PublisherState.Upload:
case PublisherState.Process:
return true;
default: break;
}
return !string.IsNullOrEmpty(PublisherUtils.GetUrlOfLastPublishedBuild(publisherWindow));
}
public bool IsBuildPublished()
{
if (!IsWebGLPublisherOpen()) { return false; }
return !string.IsNullOrEmpty(PublisherUtils.GetUrlOfLastPublishedBuild(publisherWindow));
}
public bool AtLeastOneBuildIsRegistered()
{
if (!IsWebGLPublisherOpen()) { return false; }
switch (PublisherUtils.GetCurrentPublisherState(publisherWindow))
{
case PublisherState.Zip:
case PublisherState.Upload:
case PublisherState.Process:
return true;
default: break;
}
int availableBuilds = PublisherUtils.GetAllBuildsDirectories()
.Where(p => (p != string.Empty)
&& PublisherUtils.BuildIsValid(p)).Count();
return availableBuilds > 0;
}
bool IsWebGLPublisherOpen()
{
if (publisherWindow) { return true; }
publisherWindow = PublisherWindow.FindInstance();
return false;
}
}
}