minesweeper_game/Library/PackageCache/com.unity.services.analytics@f7e249983920/Editor/Settings/AnalyticsSettingsProvider.cs
2025-03-15 14:30:26 -04:00

61 lines
2.3 KiB
C#

using Unity.Services.Core.Editor;
using UnityEditor;
using UnityEngine;
using UnityEngine.UIElements;
namespace Unity.Services.Analytics.Editor.Settings
{
class AnalyticsSettingsProvider : EditorGameServiceSettingsProvider
{
const string k_Title = "Analytics - Gaming Services";
const string k_GoToDashboardContainer = "dashboard-button-container";
const string k_GoToDashboardBtn = "dashboard-link-button";
protected override IEditorGameService EditorGameService => k_GameService;
protected override string Title => k_Title;
protected override string Description => "Analytics enables you to easily understand game performance and player behaviors so you can make strategic decisions.";
static readonly AnalyticsEditorGameService k_GameService = new AnalyticsEditorGameService();
AnalyticsSettingsProvider(SettingsScope scopes)
: base(GenerateProjectSettingsPath(k_Title), scopes) { }
[SettingsProvider]
public static SettingsProvider CreateSettingsProvider()
{
return new AnalyticsSettingsProvider(SettingsScope.Project);
}
// This method must be implemented as part of EditorGameServiceSettingsProvider.
// It is used to create UI elements in the window, but there's nothing to add atm so
// it is essentially empty.
protected override VisualElement GenerateServiceDetailUI()
{
var containerVisualElement = new VisualElement();
return containerVisualElement;
}
public override void OnActivate(string searchContext, VisualElement rootElement)
{
base.OnActivate(searchContext, rootElement);
SetDashboardButton(rootElement);
}
static void SetDashboardButton(VisualElement rootElement)
{
rootElement.Q(k_GoToDashboardContainer).style.display = DisplayStyle.Flex;
var goToDashboard = rootElement.Q(k_GoToDashboardBtn);
if (goToDashboard != null)
{
var clickable = new Clickable(() =>
{
Application.OpenURL(k_GameService.GetFormattedDashboardUrl());
});
goToDashboard.AddManipulator(clickable);
}
}
}
}