설명 없음
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.

Platform.cs 3.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. using System;
  2. using System.Collections.Generic;
  3. using UnityEngine.Advertisements.Events;
  4. using UnityEngine.Advertisements.Utilities;
  5. namespace UnityEngine.Advertisements.Platform
  6. {
  7. internal class Platform : IPlatform
  8. {
  9. public IBanner Banner { get; }
  10. public IUnityLifecycleManager UnityLifecycleManager { get; }
  11. public INativePlatform NativePlatform { get; }
  12. public bool IsInitialized => NativePlatform?.IsInitialized() ?? false;
  13. public bool IsShowing { get; private set; }
  14. public string Version => NativePlatform?.GetVersion() ?? "UnknownVersion";
  15. public bool DebugMode
  16. {
  17. get => NativePlatform?.GetDebugMode() ?? false;
  18. set => NativePlatform?.SetDebugMode(value);
  19. }
  20. public Platform(INativePlatform nativePlatform, IBanner banner, IUnityLifecycleManager unityLifecycleManager)
  21. {
  22. NativePlatform = nativePlatform;
  23. Banner = banner;
  24. UnityLifecycleManager = unityLifecycleManager;
  25. NativePlatform.SetupPlatform(this);
  26. }
  27. public void Initialize(string gameId, bool testMode, IUnityAdsInitializationListener initializationListener)
  28. {
  29. if (!IsInitialized)
  30. {
  31. var framework = new MetaData("framework");
  32. framework.Set("name", "Unity");
  33. framework.Set("version", Application.unityVersion);
  34. SetMetaData(framework);
  35. var adapter = new MetaData("adapter");
  36. #if ASSET_STORE
  37. adapter.Set("name", "AssetStore");
  38. #else
  39. adapter.Set("name", "Packman");
  40. #endif
  41. adapter.Set("version", Version);
  42. SetMetaData(adapter);
  43. NativePlatform.Initialize(gameId, testMode, initializationListener);
  44. }
  45. }
  46. public void Load(string placementId)
  47. {
  48. Load(placementId, null);
  49. }
  50. public void Load(string placementId, IUnityAdsLoadListener loadListener)
  51. {
  52. if (string.IsNullOrEmpty(placementId))
  53. {
  54. Debug.LogError("placementId cannot be nil or empty");
  55. return;
  56. }
  57. NativePlatform.Load(placementId, loadListener);
  58. }
  59. public void Show(string placementId, ShowOptions showOptions, IUnityAdsShowListener showListener)
  60. {
  61. if (IsShowing) return;
  62. if (showOptions != null)
  63. {
  64. if (!string.IsNullOrEmpty(showOptions.gamerSid))
  65. {
  66. var player = new MetaData("player");
  67. player.Set("server_id", showOptions.gamerSid);
  68. SetMetaData(player);
  69. }
  70. }
  71. NativePlatform.Show(string.IsNullOrEmpty(placementId) ? null : placementId, showListener);
  72. }
  73. public void SetMetaData(MetaData metaData)
  74. {
  75. NativePlatform.SetMetaData(metaData);
  76. }
  77. public void OnUnityAdsShowFailure(string placementId, UnityAdsShowError error, string message)
  78. {
  79. IsShowing = false;
  80. }
  81. public void OnUnityAdsShowStart(string placementId)
  82. {
  83. IsShowing = true;
  84. }
  85. public void OnUnityAdsShowClick(string placementId)
  86. {
  87. }
  88. public void OnUnityAdsShowComplete(string placementId, UnityAdsShowCompletionState completionState)
  89. {
  90. IsShowing = false;
  91. }
  92. }
  93. }