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

GoogleMobileAdsSettings.cs 3.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. using System;
  2. using System.IO;
  3. using UnityEditor;
  4. using UnityEngine;
  5. namespace GoogleMobileAds.Editor
  6. {
  7. internal class GoogleMobileAdsSettings : ScriptableObject
  8. {
  9. private const string MobileAdsSettingsResDir = "Assets/GoogleMobileAds/Resources";
  10. private const string MobileAdsSettingsFile = "GoogleMobileAdsSettings";
  11. private const string MobileAdsSettingsFileExtension = ".asset";
  12. internal static GoogleMobileAdsSettings LoadInstance()
  13. {
  14. //Read from resources.
  15. var instance = Resources.Load<GoogleMobileAdsSettings>(MobileAdsSettingsFile);
  16. //Create instance if null.
  17. if (instance == null)
  18. {
  19. Directory.CreateDirectory(MobileAdsSettingsResDir);
  20. instance = ScriptableObject.CreateInstance<GoogleMobileAdsSettings>();
  21. string assetPath = Path.Combine(
  22. MobileAdsSettingsResDir,
  23. MobileAdsSettingsFile + MobileAdsSettingsFileExtension);
  24. AssetDatabase.CreateAsset(instance, assetPath);
  25. AssetDatabase.SaveAssets();
  26. Version agp = Version.Parse(Utils.AndroidGradlePluginVersion);
  27. instance.validateGradleDependencies = true;
  28. // Turn on Gradle Dependency Validation if AGP < 4.2.2
  29. if (agp.Major > 4 || (agp.Major == 4 && agp.Minor >= 2 && agp.Build >= 2))
  30. {
  31. instance.validateGradleDependencies = false;
  32. }
  33. }
  34. return instance;
  35. }
  36. [SerializeField]
  37. private string adMobAndroidAppId = string.Empty;
  38. [SerializeField]
  39. private string adMobIOSAppId = string.Empty;
  40. [SerializeField]
  41. private bool delayAppMeasurementInit;
  42. [SerializeField]
  43. private bool enableKotlinXCoroutinesPackagingOption = true;
  44. [SerializeField]
  45. private bool optimizeInitialization;
  46. [SerializeField]
  47. private bool optimizeAdLoading;
  48. [SerializeField]
  49. private string userTrackingUsageDescription;
  50. [SerializeField]
  51. private bool validateGradleDependencies;
  52. public string GoogleMobileAdsAndroidAppId
  53. {
  54. get { return adMobAndroidAppId; }
  55. set { adMobAndroidAppId = value; }
  56. }
  57. public bool EnableKotlinXCoroutinesPackagingOption
  58. {
  59. get { return enableKotlinXCoroutinesPackagingOption; }
  60. set { enableKotlinXCoroutinesPackagingOption = value; }
  61. }
  62. public string GoogleMobileAdsIOSAppId
  63. {
  64. get { return adMobIOSAppId; }
  65. set { adMobIOSAppId = value; }
  66. }
  67. public bool DelayAppMeasurementInit
  68. {
  69. get { return delayAppMeasurementInit; }
  70. set { delayAppMeasurementInit = value; }
  71. }
  72. public bool OptimizeInitialization
  73. {
  74. get { return optimizeInitialization; }
  75. set { optimizeInitialization = value; }
  76. }
  77. public bool OptimizeAdLoading
  78. {
  79. get { return optimizeAdLoading; }
  80. set { optimizeAdLoading = value; }
  81. }
  82. public string UserTrackingUsageDescription
  83. {
  84. get { return userTrackingUsageDescription; }
  85. set { userTrackingUsageDescription = value; }
  86. }
  87. public bool ValidateGradleDependencies
  88. {
  89. get { return validateGradleDependencies; }
  90. set { validateGradleDependencies = value; }
  91. }
  92. }
  93. }