123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- #if SERVICES_SDK_CORE_ENABLED
- using System;
- using Unity.Services.Core.Editor;
- using UnityEditor;
- using UnityEditor.Advertisements;
-
- namespace UnityEngine.Advertisements.Editor
- {
- class AdsService : IEditorGameService
- {
- public event Action GameIdsUpdated;
-
- public AdsService()
- {
- ((EditorGameServiceFlagEnabler)Enabler).ServiceFlagRequestComplete += FetchMissingGameIdsIfPossible;
- }
-
- void FetchMissingGameIdsIfPossible()
- {
- if (!AdvertisementSettings.enabled
- || string.IsNullOrEmpty(CloudProjectSettings.projectId))
- {
- return;
- }
-
- var iosGameId = AdvertisementSettings.GetGameId(RuntimePlatform.IPhonePlayer);
- var androidGameId = AdvertisementSettings.GetGameId(RuntimePlatform.Android);
- if (string.IsNullOrEmpty(iosGameId)
- || string.IsNullOrEmpty(androidGameId))
- {
- new RequestGameIds().SendWithRetry(OnRequestGameIdsCompletedSuccess, OnRequestGameIdsCompletedError);
- }
- }
-
- void OnRequestGameIdsCompletedSuccess(RequestGameIds.Response response)
- {
- SetGameIds(response);
- }
-
- void OnRequestGameIdsCompletedError(Exception exception)
- {
- Debug.LogException(exception);
- }
-
- void SetGameIds(RequestGameIds.Response gameIds)
- {
- AdvertisementSettings.SetGameId(RuntimePlatform.IPhonePlayer, gameIds.iOSGameKey);
- AdvertisementSettings.SetGameId(RuntimePlatform.Android, gameIds.androidGameKey);
-
- GameIdsUpdated?.Invoke();
- }
-
- ~AdsService()
- {
- if (Enabler is EditorGameServiceFlagEnabler adsServiceEnabler)
- {
- adsServiceEnabler.ServiceFlagRequestComplete -= FetchMissingGameIdsIfPossible;
- }
- }
-
- public string Name => "Ads";
-
- public IEditorGameServiceIdentifier Identifier => new AdsServiceIdentifier();
-
- public bool RequiresCoppaCompliance => true;
-
- public bool HasDashboard => true;
-
- public string GetFormattedDashboardUrl()
- {
- #if ENABLE_EDITOR_GAME_SERVICES
- return AdsDashboardUrls.GetOverviewUrl();
- #else
- return string.Empty;
- #endif
- }
-
- public IEditorGameServiceEnabler Enabler { get; } = new AdsServiceEnabler();
- }
- }
- #endif
|