494 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			494 lines
		
	
	
		
			12 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; | |||
|  |     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); | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void layoutNativeWithFrame(float x, float y, float width, float height); | |||
|  |     [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 | |||
|  |      | |||
|  |      | |||
|  | #endif | |||
|  | 
 | |||
|  |     //新用户打点上报 | |||
|  |     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 | |||
|  |         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) | |||
|  |     { | |||
|  | 
 | |||
|  | #if UNITY_IPHONE && !UNITY_EDITOR && !NO_SDK | |||
|  |         layoutNativeWithFrame(x, y, width, height); | |||
|  |         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 | |||
|  | 
 | |||
|  |     #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 | |||
|  | 
 | |||
|  | 
 | |||
|  | } | |||
|  | 
 | |||
|  | 
 |