533 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			533 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			C#
		
	
	
	
| 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<bool> m_userSourceCallback;
 | |
| 
 | |
|     public static TGiOSAdManager Instance
 | |
|     {
 | |
|         get
 | |
|         {
 | |
|             if (s_instance == null)
 | |
|             {
 | |
|                 GameObject TGGameObject = new GameObject
 | |
|                 {
 | |
|                     name = "AdObject"
 | |
|                 };
 | |
|                 s_instance = TGGameObject.AddComponent<TGiOSAdManager>();
 | |
|                 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<bool> _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
 | |
|         layoutNativeWithFrame(x, y, width, height,adpos);
 | |
|         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
 | |
| 
 | |
| 
 | |
| }
 | |
| 
 | |
| 
 |