You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
136 lines
5.5 KiB
C#
136 lines
5.5 KiB
C#
2 months ago
|
using UnityEditor;
|
||
|
using UnityEngine;
|
||
|
|
||
|
namespace GoogleMobileAds.Editor
|
||
|
{
|
||
|
[InitializeOnLoad]
|
||
|
[CustomEditor(typeof(GoogleMobileAdsSettings))]
|
||
|
public class GoogleMobileAdsSettingsEditor : UnityEditor.Editor
|
||
|
{
|
||
|
|
||
|
SerializedProperty _appIdAndroid;
|
||
|
SerializedProperty _appIdiOS;
|
||
|
SerializedProperty _enableKotlinXCoroutinesPackagingOption;
|
||
|
SerializedProperty _optimizeInitialization;
|
||
|
SerializedProperty _optimizeAdLoading;
|
||
|
SerializedProperty _userTrackingUsageDescription;
|
||
|
SerializedProperty _validateGradleDependencies;
|
||
|
|
||
|
|
||
|
[MenuItem("Assets/Google Mobile Ads/Settings...")]
|
||
|
public static void OpenInspector()
|
||
|
{
|
||
|
Selection.activeObject = GoogleMobileAdsSettings.LoadInstance();
|
||
|
}
|
||
|
|
||
|
public void OnEnable()
|
||
|
{
|
||
|
_appIdAndroid = serializedObject.FindProperty("adMobAndroidAppId");
|
||
|
_appIdiOS = serializedObject.FindProperty("adMobIOSAppId");
|
||
|
_enableKotlinXCoroutinesPackagingOption =
|
||
|
serializedObject.FindProperty("enableKotlinXCoroutinesPackagingOption");
|
||
|
_optimizeInitialization = serializedObject.FindProperty("optimizeInitialization");
|
||
|
_optimizeAdLoading = serializedObject.FindProperty("optimizeAdLoading");
|
||
|
_userTrackingUsageDescription =
|
||
|
serializedObject.FindProperty("userTrackingUsageDescription");
|
||
|
_validateGradleDependencies =
|
||
|
serializedObject.FindProperty("validateGradleDependencies");
|
||
|
}
|
||
|
|
||
|
public override void OnInspectorGUI()
|
||
|
{
|
||
|
// Make sure the Settings object has all recent changes.
|
||
|
serializedObject.Update();
|
||
|
|
||
|
var settings = (GoogleMobileAdsSettings)target;
|
||
|
|
||
|
if(settings == null)
|
||
|
{
|
||
|
UnityEngine.Debug.LogError("GoogleMobileAdsSettings is null.");
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
EditorGUIUtility.labelWidth = 60.0f;
|
||
|
EditorGUILayout.LabelField("Google Mobile Ads App ID", EditorStyles.boldLabel);
|
||
|
EditorGUI.indentLevel++;
|
||
|
|
||
|
EditorGUILayout.PropertyField(_appIdAndroid, new GUIContent("Android"));
|
||
|
|
||
|
EditorGUILayout.PropertyField(_appIdiOS, new GUIContent("iOS"));
|
||
|
|
||
|
EditorGUILayout.HelpBox(
|
||
|
"Google Mobile Ads App ID will look similar to this sample ID: ca-app-pub-3940256099942544~3347511713",
|
||
|
MessageType.Info);
|
||
|
|
||
|
EditorGUI.indentLevel--;
|
||
|
EditorGUILayout.Separator();
|
||
|
|
||
|
EditorGUIUtility.labelWidth = 325.0f;
|
||
|
EditorGUILayout.LabelField("Android settings", EditorStyles.boldLabel);
|
||
|
EditorGUI.indentLevel++;
|
||
|
|
||
|
EditorGUI.BeginChangeCheck();
|
||
|
|
||
|
EditorGUILayout.PropertyField(_enableKotlinXCoroutinesPackagingOption,
|
||
|
new GUIContent("Enable kotlinx.coroutines packaging option."));
|
||
|
|
||
|
if (settings.EnableKotlinXCoroutinesPackagingOption)
|
||
|
{
|
||
|
EditorGUILayout.HelpBox(
|
||
|
"Adds instruction to fix a build.gradle build error with message"+
|
||
|
" '2 files found with path 'META-INF/kotlinx_coroutines_core.version'."+
|
||
|
" For more details see https://developers.google.com/admob/unity/gradle",
|
||
|
MessageType.Info);
|
||
|
}
|
||
|
|
||
|
EditorGUILayout.PropertyField(_validateGradleDependencies,
|
||
|
new GUIContent("Remove property tag from GMA Android SDK"));
|
||
|
|
||
|
if (settings.ValidateGradleDependencies)
|
||
|
{
|
||
|
EditorGUILayout.HelpBox(
|
||
|
"This option ensures the GMA Android SDK is compatible with the version of " +
|
||
|
"Android Gradle Plugin being used. Enabling this option is required for Unity" +
|
||
|
" Projects that use Android Gradle Plugin under version 4.2.2.",
|
||
|
MessageType.Info);
|
||
|
}
|
||
|
|
||
|
EditorGUILayout.PropertyField(_optimizeInitialization,
|
||
|
new GUIContent("Optimize initialization"));
|
||
|
if (settings.OptimizeInitialization) {
|
||
|
EditorGUILayout.HelpBox(
|
||
|
"Initialization will be offloaded to a background thread.",
|
||
|
MessageType.Info);
|
||
|
}
|
||
|
|
||
|
EditorGUILayout.PropertyField(_optimizeAdLoading,
|
||
|
new GUIContent("Optimize ad loading"));
|
||
|
|
||
|
if (settings.OptimizeAdLoading) {
|
||
|
EditorGUILayout.HelpBox(
|
||
|
"Ad loading tasks will be offloaded to a background thread.",
|
||
|
MessageType.Info);
|
||
|
}
|
||
|
|
||
|
EditorGUI.indentLevel--;
|
||
|
EditorGUILayout.Separator();
|
||
|
|
||
|
EditorGUIUtility.labelWidth = 205.0f;
|
||
|
EditorGUILayout.LabelField("UMP-specific settings", EditorStyles.boldLabel);
|
||
|
EditorGUI.indentLevel++;
|
||
|
|
||
|
EditorGUILayout.PropertyField(_userTrackingUsageDescription,
|
||
|
new GUIContent("User Tracking Usage Description"));
|
||
|
|
||
|
EditorGUILayout.HelpBox(
|
||
|
"A message that informs the user why an iOS app is requesting permission to " +
|
||
|
"use data for tracking the user or the device.", MessageType.Info);
|
||
|
|
||
|
EditorGUI.indentLevel--;
|
||
|
EditorGUILayout.Separator();
|
||
|
|
||
|
serializedObject.ApplyModifiedProperties();
|
||
|
}
|
||
|
}
|
||
|
}
|