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.
36 lines
1.6 KiB
36 lines
1.6 KiB
using System;
|
|
using UnityEngine;
|
|
|
|
namespace Unity.Services.Core.Editor
|
|
{
|
|
/// <summary>
|
|
/// Used by <see cref="IEditorGameService"/> to simplify operations related to the dashboard
|
|
/// </summary>
|
|
public static class EditorGameServiceDashboardHelper
|
|
{
|
|
/// <summary>
|
|
/// Opens the dashboard of the <see cref="IEditorGameService"/>
|
|
/// </summary>
|
|
/// <param name="editorGameService">The <see cref="IEditorGameService"/> who's dashboard should open</param>
|
|
public static void OpenDashboard(this IEditorGameService editorGameService)
|
|
{
|
|
if (!editorGameService.HasDashboard)
|
|
{
|
|
throw new InvalidOperationException($"The service '{editorGameService.Name}' is not configured to use a Dashboard. " +
|
|
$"Make sure the service returns 'true' in 'HasDashboard' implementation.");
|
|
}
|
|
|
|
var formattedUrl = editorGameService.GetFormattedDashboardUrl();
|
|
if (Uri.IsWellFormedUriString(formattedUrl, UriKind.Absolute))
|
|
{
|
|
EditorGameServiceAnalyticsSender.SendProjectSettingsGoToDashboardEvent(editorGameService.Identifier.GetKey());
|
|
Application.OpenURL(formattedUrl);
|
|
}
|
|
else
|
|
{
|
|
throw new UriFormatException($"Dashboard Url for service '{editorGameService.Name}' is not properly formatted." +
|
|
$" Attempted to use url '{formattedUrl}'. Make sure the service returns a proper url in 'GetFormattedDashboardUrl()' implementation.");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|