156 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			156 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using Touka.GameLogic; | |||
|  | using System.Collections.Generic; | |||
|  | using System; | |||
|  | using UnityEngine; | |||
|  | 
 | |||
|  | public partial class ToukaSDKManager : ToukaSingletonMonoBehaviour<ToukaSDKManager> | |||
|  | { | |||
|  |     public enum IVType | |||
|  |     { | |||
|  |         IV1 = 0, | |||
|  |         IV2, | |||
|  | 
 | |||
|  |         MAX, | |||
|  |     } | |||
|  | 
 | |||
|  |     /// <summary> | |||
|  |     /// 初始化广告 | |||
|  |     ///  | |||
|  |     /// 调用时机:进游戏时 | |||
|  |     /// 内部包含进游戏立刻初始化广告的逻辑 | |||
|  |     /// </summary> | |||
|  |     public void initAdsSDK() | |||
|  |     { | |||
|  |         ToukaAdManager.Instance.Init(); | |||
|  |     } | |||
|  | 
 | |||
|  |     #region ABOUT ADS INTERFACE | |||
|  | 
 | |||
|  |     /// <summary> | |||
|  |     /// 播放插屏接口 | |||
|  |     /// </summary> | |||
|  |     /// <param name="adPos"> 点位名称-用于插屏打点事件上报 </param> | |||
|  |     /// <param name="callback"> 关闭插屏回调-如不需要可传空</param> | |||
|  |     /// <param name="_ivType"> 插屏条件类型-默认使用IV1 </param> | |||
|  |     public void PlayInterstitialAd(string adPos = "", Action callback = null, IVType _ivType = IVType.IV1) | |||
|  |     { | |||
|  | #if NO_AD | |||
|  |         callback(); | |||
|  |         return; | |||
|  | #endif | |||
|  |         // 判断是否达到可展示插屏的条件 | |||
|  |         if (!ToukaInterstitialTimer.Instance.CanShow(_ivType))       | |||
|  |         { | |||
|  |             Debug.Log("time too short, can't show iv"); | |||
|  |             if (callback != null) | |||
|  |             { | |||
|  |                 callback(); | |||
|  |             } | |||
|  |             return; | |||
|  |         } | |||
|  | 
 | |||
|  |         Debug.Log("PlayInterstitialAd"); | |||
|  |         // 播放插屏 | |||
|  |         ToukaAdManager.Instance.ShowInterstitial((ToukaIntersitialStatus obj) => { | |||
|  |             switch (obj) | |||
|  |             { | |||
|  |                 case ToukaIntersitialStatus.CLOSE: | |||
|  |                     Debug.Log("close iv"); | |||
|  |                     if(callback != null) | |||
|  |                     { | |||
|  |                         callback(); | |||
|  |                     } | |||
|  |                     ToukaInterstitialTimer.Instance.StartTimer(); | |||
|  |                     break; | |||
|  |                 case ToukaIntersitialStatus.FAIL: | |||
|  |                     Debug.Log("iv show fail"); | |||
|  |                     if (callback != null) | |||
|  |                     { | |||
|  |                         callback(); | |||
|  |                     } | |||
|  |                     break; | |||
|  |             } | |||
|  |         }, adPos); | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  |     /// <summary> | |||
|  |     /// 激励视频 | |||
|  |     /// </summary> | |||
|  |     /// <param name="adsKey"> 点位名称-用于激励视频打点事件上报 </param> | |||
|  |     /// <param name="rewardSuccCallback"></param> | |||
|  |     /// <param name="rewardFailedCallback"></param> | |||
|  |     public void PlayRewardAd(string adsKey, Action rewardSuccCallback, Action rewardFailedCallback = null) | |||
|  |     { | |||
|  |         Debug.Log("PlayRewardAd -----  adsKey:" + adsKey); | |||
|  | 
 | |||
|  | #if NO_AD | |||
|  |         rewardSuccCallback.Invoke(); | |||
|  |         return; | |||
|  | #endif | |||
|  |         string adPosKey = adsKey; | |||
|  |         ToukaAdManager.Instance.ShowVideo((ToukaVideoStatus _status) => { | |||
|  |             Debug.Log("_status : " + _status); | |||
|  | 
 | |||
|  |             switch (_status) | |||
|  |             { | |||
|  |                 case ToukaVideoStatus.CLOSE: | |||
|  |                     { | |||
|  |                         ToukaInterstitialTimer.Instance.StartTimer(); | |||
|  |                     } | |||
|  |                     break; | |||
|  |                 case ToukaVideoStatus.SUCCESS: | |||
|  |                     { | |||
|  |                         Debug.Log("RV get reward"); | |||
|  |                         if (rewardSuccCallback != null) | |||
|  |                         { | |||
|  |                             rewardSuccCallback.Invoke(); | |||
|  |                         } | |||
|  |                     } | |||
|  |                     break; | |||
|  |                 case ToukaVideoStatus.CANCEL: | |||
|  |                 case ToukaVideoStatus.FAIL: | |||
|  |                     { | |||
|  |                         Debug.Log("RV not get reward"); | |||
|  |                         if (rewardFailedCallback != null) | |||
|  |                         { | |||
|  |                             rewardFailedCallback.Invoke(); | |||
|  |                         } | |||
|  |                     } | |||
|  |                     break; | |||
|  |             } | |||
|  |         }, new ToukaVideoPlace(adPosKey, adPosKey, adPosKey)); | |||
|  |     } | |||
|  | 
 | |||
|  |     /// <summary> | |||
|  |     /// change scene show or hide or reload banner | |||
|  |     /// </summary> | |||
|  |     /// <param name="_canShowBanner"></param> | |||
|  |     public void ShowOrHideBanner(bool _canShowBanner) | |||
|  |     { | |||
|  |         if (_canShowBanner) | |||
|  |         { | |||
|  |             Debug.Log("这个场景要显示banner"); | |||
|  |             ToukaAdManager.isCurrCanShowBanner = true; | |||
|  |             ToukaAdManager.Instance.ForceReloadBanner(); | |||
|  |         } | |||
|  |         else | |||
|  |         { | |||
|  |             Debug.Log("这个场景要隐藏banner"); | |||
|  |             ToukaAdManager.isCurrCanShowBanner = false; | |||
|  |             ToukaAdManager.Instance.HideBanner(true); | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  |     public void ShowNative() | |||
|  |     { | |||
|  |         NativeAd.Instance.ShowNativeAd(); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void RemoveNative() | |||
|  |     { | |||
|  |         ToukaAdManager.Instance.HideNative(false); | |||
|  |     } | |||
|  |     #endregion | |||
|  | } |