using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Runtime.InteropServices; using System; public class TGiOSAdManager : MonoBehaviour { private static TGiOSAdManager s_instance; public Action onAntiSuccessHander; private System.Action m_userSourceCallback; public static TGiOSAdManager Instance { get { if (s_instance == null) { GameObject TGGameObject = new GameObject { name = "AdObject" }; s_instance = TGGameObject.AddComponent(); DontDestroyOnLoad(TGGameObject); } return s_instance; } } #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK [DllImport("__Internal")] private static extern void initSDK(string appID, string appKey); [DllImport("__Internal")] private static extern void loadNativeBannerWithUnitId(string unitId); [DllImport("__Internal")] private static extern bool isReadyNativeBannerWithUnitId(string unitId); [DllImport("__Internal")] private static extern void showNativeBannerWithUnitId(string unitId); [DllImport("__Internal")] private static extern void setNativeBannerAlign(string align); [DllImport("__Internal")] private static extern void hideNativeBanner(); [DllImport("__Internal")] private static extern void removeNativeBanner(); [DllImport("__Internal")] private static extern void loadBannerWithUnitId(string unitId); [DllImport("__Internal")] private static extern bool isReadyBannerWithUnitId(string unitId); [DllImport("__Internal")] private static extern void showBannerWithUnitId(string unitId); [DllImport("__Internal")] private static extern void setBannerAlign(string align); [DllImport("__Internal")] private static extern void hideBanner(); [DllImport("__Internal")] private static extern void removeBanner(); [DllImport("__Internal")] private static extern void loadInterstitialWithUnitId(string unitId); [DllImport("__Internal")] private static extern bool isReadyInterstitialWithUnitId(string unitId); [DllImport("__Internal")] private static extern void showInterstitialWithUnitId(string unitId); [DllImport("__Internal")] private static extern void loadNativeWithUnitId(string unitId, float width, float height); [DllImport("__Internal")] private static extern bool isReadyNativeWithUnitId(string unitId); #if IOS_CN [DllImport("__Internal")] private static extern void layoutNativeWithFrame(float x, float y, float width, float height); #else [DllImport("__Internal")] private static extern void layoutNativeWithFrame(float x, float y, float width, float height,string adpos); #endif [DllImport("__Internal")] private static extern void showNativeWithUnitId(string unitId); [DllImport("__Internal")] private static extern void removeNative(); [DllImport("__Internal")] private static extern void loadRewardVideoWithUnitId(string unitId); [DllImport("__Internal")] private static extern bool isReadyRewardVideoWithUnitId(string unitId); [DllImport("__Internal")] private static extern void showRewardVideoWithUnitId(string unitId); [DllImport("__Internal")] private static extern void setLogEnable(bool enable); [DllImport("__Internal")] private static extern void updateConversionValue(string value); #if IOS_CN [DllImport("__Internal")] private static extern void showAntiView(); [DllImport("__Internal")] private static extern void newUserPassLevel(); #endif #if !IOS_CN [DllImport("__Internal")] private static extern void getUserSource(); #endif #endif public void GetUserSource(System.Action _callback) { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK && !IOS_CN m_userSourceCallback = _callback; getUserSource(); #endif } /* * 0 是自然用户 * 1 是非自然用户 */ public void onUserSource(string obj) { bool isTrue = obj == "0"; if (m_userSourceCallback != null) m_userSourceCallback(isTrue); } //新用户打点上报 public void NewUserPassLevel() { #if UNITY_IPHONE && !UNITY_EDITOR && IOS_CN newUserPassLevel(); #endif } //实名认证弹框 public void ShowAntiView() { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK && IOS_CN showAntiView(); #endif } //实名认证回调 // 用户授权回调 [UnmanagedFunctionPointer(CallingConvention.Cdecl)] public delegate void antiSuccessDelegate(); [AOT.MonoPInvokeCallback(typeof(antiSuccessDelegate))] static void antiSuccessHandle() { Instance.onAntiSuccessHander?.Invoke(); } //设置log开关 public void SetLogEnable(bool enable) { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK setLogEnable(enable); #endif } public void InitSDK(string appID, string appKey) { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK TGUniversalFunc.onSetUserSourceListener_onSuccess += onUserSource; initSDK(appID, appKey); #endif } #region native banner public void LoadNativeBannerWithUnitId(string unitId) { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK loadNativeBannerWithUnitId(unitId); #endif } public bool IsReadyNativeBannerWithUnitId(string unitId) { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK return isReadyNativeBannerWithUnitId(unitId); #else return false; #endif } public void SetNativeBannerAlign(string align) { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK setNativeBannerAlign(align); #endif } public void ShowNativeBannerWithUnitId(string unitId) { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK showNativeBannerWithUnitId(unitId); #endif } public void HideNativeBanner() { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK hideNativeBanner(); #endif } public void RemoveNativeBanner() { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK removeNativeBanner(); #endif } #endregion #region banner public void LoadBannerWithUnitId(string unitId) { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK loadBannerWithUnitId(unitId); #endif } public bool IsReadyBannerWithUnitId(string unitId) { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK return isReadyBannerWithUnitId(unitId); #else return false; #endif } public void SetBannerAlign(string align) { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK setBannerAlign(align); #endif } public void ShowBannerWithUnitId(string unitId) { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK showBannerWithUnitId(unitId); #endif } public void HideBanner() { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK hideNativeBanner(); #endif } public void RemoveBanner() { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK removeNativeBanner(); #endif } #endregion #region interstitial public void Loadinterstitial(string unitId) { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK loadInterstitialWithUnitId(unitId); #endif } public bool IsReadyinterstitial(string unitId) { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK return isReadyInterstitialWithUnitId(unitId); #else return false; #endif } public void Showinterstitial(string unitId) { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK showInterstitialWithUnitId(unitId); #endif } #endregion #region native public void LoadNative(string unitId, float width, float height) { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK loadNativeWithUnitId(unitId, width, height); #endif } public bool IsReadNative(string unitId) { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK return isReadyNativeWithUnitId(unitId); #else return false; #endif } public void ShowNative(float x, float y, float width, float height, string unitId, string adpos) { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK #if IOS_CN layoutNativeWithFrame(x, y, width, height); #else layoutNativeWithFrame(x, y, width, height,adpos); #endif showNativeWithUnitId(unitId); #endif } public void RemoveNative() { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK removeNative(); #endif } #endregion #region rewardVideo public void LoadVideo(string unitId) { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK loadRewardVideoWithUnitId(unitId); #endif } public bool IsReadyVideo(string unitId) { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK return isReadyRewardVideoWithUnitId(unitId); #else return false; #endif } public void ShowVideo(string unitId) { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK showRewardVideoWithUnitId(unitId); #endif } #endregion #region public void UpdateConversionValue(string value) { #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK updateConversionValue(value); #endif } #endregion #region public void AntiSuccessCallback() { onAntiSuccessHander?.Invoke(); } #endregion public void TGGetUserSource(string obj) { TGUniversalFunc.onSetUserSourceListener_onSuccess?.Invoke(obj); } #region interstitialCallback public void TGInterstitialAdLoad(string obj) { TGUniversalFunc.onSetInterstitialListener_onAdLoaded?.Invoke(); } public void TGInterstitialAdLoadFail(string obj) { TGUniversalFunc.onSetInterstitialListener_onAdFailedToLoad?.Invoke(); } public void TGInterstitialAdShow(string obj) { TGUniversalFunc.onSetInterstitialListener_onShowSuccess?.Invoke(); } public void TGInterstitialAdsShowFail(string obj) { TGUniversalFunc.onSetInterstitialListener_onShowFailed?.Invoke(); } public void TGInterstitialAdClose(string obj) { TGUniversalFunc.onSetInterstitialListener_onAdClosed?.Invoke(); } public void TGInterstitialAdClick(string obj) { TGUniversalFunc.onSetInterstitialListener_onClick?.Invoke(); } public void TGInterstitialAdsEndPlaying(string obj) { TGUniversalFunc.onSetInterstitialListener_onEndPlaying?.Invoke(); } public void TGInterstitialAdFailedToPlay(string obj) { TGUniversalFunc.onSetInterstitialListener_onFailedToPlay?.Invoke(); } public void TGInterstitialAdsStartPlayVideo(string obj) { TGUniversalFunc.onSetInterstitialListener_onStartPlayVideo?.Invoke(); } #endregion #region videoCallback public void TGVideoAdLoaded(string obj) { TGUniversalFunc.onSetRewardListener_onRewardedVideoAdLoaded?.Invoke(); } public void TGVideoAdLoadFail(string obj) { TGUniversalFunc.onSetRewardListener_onRewardedVideoAdFailedToLoad?.Invoke(); } public void TGVideoAdPlayStart(string obj) { TGUniversalFunc.onSetRewardListener_onRewardedVideoStarted?.Invoke(); } public void TGVideoAdPlayEnd(string obj) { TGUniversalFunc.onSetRewardListener_onRewardedVideoAdEnd?.Invoke(); } public void TGVideoAdPlayFail(string obj) { TGUniversalFunc.onSetRewardListener_onRewardedVideoAdPlayFail?.Invoke(); } public void TGVideoAdPlayClosed(string isRewardStr) { TGUniversalFunc.onSetRewardListener_onRewardedVideoAdClosed?.Invoke(isRewardStr); } public void TGVideoAdPlayClicked(string obj) { TGUniversalFunc.onSetRewardListener_onRewardedVideoClickAd?.Invoke(); } public void TGVideoAdDidRewardedSuccess(string obj) { TGUniversalFunc.onSetRewardListener_onRewarded?.Invoke(); } #endregion #region bannerCallback public void TGBannerAdLoad(string obj) { TGUniversalFunc.onSetBannerListener_onAdLoaded?.Invoke(); } public void TGBannerAdLoadFail(string obj) { TGUniversalFunc.onSetBannerListener_onAdFailedToLoad?.Invoke(); } public void TGBannerAdDidShow(string obj) { TGUniversalFunc.onSetBannerListener_onShowSuccess?.Invoke(); } public void TGBannerAdDidClick(string obj) { TGUniversalFunc.onSetBannerListener_onClick?.Invoke(); } public void TGBannerAdDidClickCloseButton(string obj) { TGUniversalFunc.onSetBannerListener_onAdClosed?.Invoke(); } #endregion #region nativeCallback public void TGNativeAdLoadFail(string obj) { TGUniversalFunc.onSetNativeListener_onAdFailedToLoad?.Invoke(); } public void TGNativeAdLoaded(string obj) { TGUniversalFunc.onSetNativeListener_onAdLoaded?.Invoke(); } public void TGNativeAdDidShow(string obj) { TGUniversalFunc.onSetNativeListener_onShowSuccess?.Invoke(); } public void TGNativeAdDidClick(string obj) { TGUniversalFunc.onSetNativeListener_onClick?.Invoke(); } #endregion #region native banner public void TGNativeBannerAdLoad(string obj) { TGUniversalFunc.onSetNativeBannerListener_onAdLoaded?.Invoke(); } public void TGNativeBannerAdLoadFail(string obj) { TGUniversalFunc.onSetNativeBannerListener_onAdLoadFail?.Invoke(); } #endregion }