123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- using System.Collections;
- using System.Collections.Generic;
- using System.IO;
- using System;
- using UnityEngine;
- using UnityEditor;
- using System.Xml;
- using UnityEngine.Serialization;
- [HelpURL("https://www.yuque.com/books/share/83586259-ff00-4802-867f-bbefc3fe07c4/epesmt")]
- [Serializable /*, CreateAssetMenuAttribute(fileName = "AdManagerSettings", menuName = "AdManagerSettings", order = 0)*/]
- public class AdManagerSettings : ScriptableObject
- {
- #region Singleton
- private static AdManagerSettings instance;
- public static AdManagerSettings Instance
- {
- get
- {
- if (instance == null)
- {
- instance = Resources.Load<AdManagerSettings>("AdManagerSettings");
- if (instance == null)
- {
- return null;
- }
- else
- {
- Debug.Log("AdManagerSettings Loaded");
- }
- }
- return instance;
- }
- }
- #endregion
- #region Inspector Variables
- [SerializeField] public string[] iOSBannerID;
- [SerializeField] public string[] iOSInterstitialID;
- [SerializeField] public string[] iOSVideoID;
- [SerializeField] public string[] iOSOpenID;
- [SerializeField] public string[] iOSRewardedInterstitialID;
- [Space] [SerializeField] public string[] AndroidBannerID;
- [SerializeField] public string[] AndroidInterstitialID;
- [SerializeField] public string[] AndroidVideoID;
- [SerializeField] public string[] AndroidOpenID;
- [SerializeField] public string[] AndroidRewardedInterstitialID;
- [Tooltip("输入自动请求间隔时间,单位秒")] [SerializeField]
- public int RepeatTime = 120;
- [FormerlySerializedAs("YouIosAdmobId")] [Tooltip("输入你iOS应用的AdmobId")] [SerializeField]
- public string iOSAdmobId;
- [Tooltip("仅iOS需要,输入你应用的苹果appid")] [SerializeField]
- public string AppleID;
- [Tooltip("输入你应用的友盟 iOS appid")] [SerializeField]
- public string iOSUmengAppid;
- [Tooltip("输入你应用的iOS 穿山甲AppID")] [SerializeField]
- public string iOSPangleAppID;
- [Tooltip("输入你应用的iOS FacebookID")] [SerializeField]
- public string iOSFacebookID;
- [Tooltip("输入你应用的iOS Facebook名字")] [SerializeField]
- public string iOSFacebookDisplayname = "ios";
- [Tooltip("输入你应用的iOS Facebook客户端口令(FacebookClientToken)")] [SerializeField]
- public string iOSFacebookClientToken;
- [Tooltip("输入你应用的iOS gameId")] [SerializeField]
- public string iOSGameId;
- [Tooltip("输入你应用的iOS Secret")] [SerializeField]
- public string iOSGameSecret;
- [FormerlySerializedAs("YouAndroidAdmobId")] [Tooltip("输入你Android应用的AdmobId")] [SerializeField]
- public string AndroidAdmobId;
- [Tooltip("输入你应用的友盟 Android appid")] [SerializeField]
- public string AndroidUmengAppid;
- [Tooltip("输入你应用的Android 穿山甲AppID")] [SerializeField]
- public string AndroidPangleAppID;
- [Tooltip("输入你应用的Android FacebookID")] [SerializeField]
- public string AndroidFacebookID;
-
- [Tooltip("输入你应用的Android Facebook客户端口令(FacebookClientToken)")] [SerializeField]
- public string AndroidFacebookClientToken;
- [Tooltip("输入你应用的Android Facebook名字")] [SerializeField]
- public string AndroidFacebookDisplayname = "Android";
- [Tooltip("输入你应用的Android gameId")] [SerializeField]
- public string AndroidGameId;
- [Tooltip("输入你应用的Android gameSecret")] [SerializeField]
- public string AndroidGameSecret;
- [Space] [Tooltip("输入你应用的谷歌服务ID")] [SerializeField]
- public string GoogleGamesAppID;
- [Space] [Tooltip("输入你应用的Umeng渠道名字")] [SerializeField]
- public string umengChannel = "GooglePlay";
- [Tooltip("防篡改")] [SerializeField]
- public bool isChcek = false;
- #endregion
- #if UNITY_EDITOR
- #region Editors.
- [MenuItem("PottingMob/Settings")]
- public static void SelectSettings()
- {
- var path = @"Assets/PottingMobileSDK/Resources/AdManagerSettings.asset";
- AdManagerSettings obj = AssetDatabase.LoadAssetAtPath<AdManagerSettings>(path);
- Selection.instanceIDs = new int[] {obj.GetInstanceID()};
- }
- [MenuItem("PottingMob/Regenerate Android Manifest")]
- public static void Regenerate()
- {
- string xmlPath = Application.dataPath + "/Plugins/Android/AndroidManifest.xml";
- XmlDocument xmlDoc = new XmlDocument();
- xmlDoc.Load(xmlPath);
- XmlNode node = xmlDoc.SelectSingleNode("/manifest");
- node = FindNode(xmlDoc, "/manifest/application/meta-data", "android:name", "com.facebook.sdk.ApplicationId");
- node.Attributes["android:value"].Value = "fb" + AdManagerSettings.Instance.AndroidFacebookID;
-
- node = FindNode(xmlDoc, "/manifest/application/meta-data", "android:name", "com.facebook.sdk.ClientToken");
- node.Attributes["android:value"].Value = AdManagerSettings.Instance.AndroidFacebookClientToken;
-
- node = FindNode(xmlDoc, "/manifest/application/meta-data", "android:name", "applovin.sdk.key");
- node = FindNode(xmlDoc, "/manifest/application/meta-data", "android:name",
- "com.google.android.gms.ads.APPLICATION_ID");
- node.Attributes["android:value"].Value = AdManagerSettings.Instance.AndroidAdmobId;
- Debug.Log(PottingMobileContent.Admob_appid);
- //node = FindNode(xmlDoc, "/manifest/application/meta-data", "android:name", "com.google.android.gms.games.APP_ID");
- //node.Attributes["android:value"].Value = AdManagerSettings.Instance.GoogleGamesAppID;
- node = FindNode(xmlDoc, "/manifest/application/meta-data", "android:name", "com.google.android.gms.games.APP_ID");
- node.Attributes["android:value"].Value = "\\u003"+AdManagerSettings.Instance.GoogleGamesAppID;
- // scheme
- XmlNodeList nodes = xmlDoc.SelectNodes("/manifest/application/activity/intent-filter/data");
- node = nodes.Item(0);
- node.Attributes["android:scheme"].Value = "fb" + AdManagerSettings.Instance.AndroidFacebookID;
- //com.facebook.app.FacebookContentProvider{APP_ID}
- node = FindNode(xmlDoc, "/manifest/application/provider", "android:name",
- "com.facebook.FacebookContentProvider");
- node.Attributes["android:authorities"].Value =
- "com.facebook.app.FacebookContentProvider" + AdManagerSettings.Instance.AndroidFacebookID;
- xmlDoc.Save(xmlPath);
- // syncResString();
- AssetDatabase.Refresh();
- }
- private static void syncResString()
- {
- string xmlPath = Application.dataPath + "/Plugins/Android/res/values/strings.xml";
- XmlDocument xmlDoc = new XmlDocument();
- xmlDoc.Load(xmlPath);
- XmlNode node = xmlDoc.SelectSingleNode("/resources");
- node = FindStringNode(xmlDoc, "/resources/string", "android:name", "google_game_app_id");
- node.InnerXml = AdManagerSettings.Instance.GoogleGamesAppID;
- xmlDoc.Save(xmlPath);
- }
- static XmlNode FindNode(XmlDocument xmlDoc, string xpath, string attributeName, string attributeValue)
- {
- XmlNodeList nodes = xmlDoc.SelectNodes(xpath);
- for (int i = 0; i < nodes.Count; i++)
- {
- XmlNode node = nodes.Item(i);
- string _attributeValue = node.Attributes[attributeName].Value;
- if (_attributeValue == attributeValue)
- {
- return node;
- }
- }
- return null;
- }
- static XmlNode FindStringNode(XmlDocument xmlDoc, string xpath, string attributeName, string attributeValue)
- {
- XmlNodeList nodes = xmlDoc.SelectNodes(xpath);
- for (int i = 0; i < nodes.Count; i++)
- {
- XmlNode node = nodes.Item(i);
- string _attributeValue = node.Attributes[0].Value;
- if (_attributeValue == attributeValue)
- {
- return node;
- }
- }
- return null;
- }
- #endregion
- #endif
- }
|