| 
									
										
										
										
											2022-05-23 13:39:59 +00:00
										 |  |  |  | using Touka.GameLogic; | 
					
						
							|  |  |  |  | using System.Collections.Generic; | 
					
						
							|  |  |  |  | using System; | 
					
						
							|  |  |  |  | using UnityEngine; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | namespace Touka | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     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 | 
					
						
							| 
									
										
										
										
											2022-05-25 09:08:52 +00:00
										 |  |  |  |             callback?.Invoke(); | 
					
						
							|  |  |  |  |             return; | 
					
						
							| 
									
										
										
										
											2022-05-23 13:39:59 +00:00
										 |  |  |  | #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"); | 
					
						
							|  |  |  |  |                         AutoIntersititialManager.Instance.InterstitialShowCount++; | 
					
						
							|  |  |  |  |                         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 | 
					
						
							| 
									
										
										
										
											2022-06-08 13:23:44 +00:00
										 |  |  |  |             rewardSuccCallback?.Invoke(); | 
					
						
							|  |  |  |  |             return; | 
					
						
							| 
									
										
										
										
											2022-05-23 13:39:59 +00:00
										 |  |  |  | #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) | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2022-07-04 11:17:39 +00:00
										 |  |  |  | #if NO_AD | 
					
						
							|  |  |  |  |             return; | 
					
						
							|  |  |  |  | #endif | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-09 10:28:58 +00:00
										 |  |  |  | #if UNITY_IOS | 
					
						
							| 
									
										
										
										
											2022-05-23 13:39:59 +00:00
										 |  |  |  |             if (_canShowBanner) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 Debug.Log("这个场景要显示banner"); | 
					
						
							|  |  |  |  |                 ToukaAdManager.isCurrCanShowBanner = true; | 
					
						
							|  |  |  |  |                 ToukaAdManager.Instance.ForceReloadBanner(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             else | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 Debug.Log("这个场景要隐藏banner"); | 
					
						
							|  |  |  |  |                 ToukaAdManager.isCurrCanShowBanner = false; | 
					
						
							|  |  |  |  |                 ToukaAdManager.Instance.HideBanner(true); | 
					
						
							|  |  |  |  |             } | 
					
						
							| 
									
										
										
										
											2022-06-09 10:28:58 +00:00
										 |  |  |  | #endif | 
					
						
							| 
									
										
										
										
											2022-05-23 13:39:59 +00:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-27 16:06:04 +00:00
										 |  |  |  |         public void ShowNative(string adpos) | 
					
						
							| 
									
										
										
										
											2022-05-23 13:39:59 +00:00
										 |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2022-07-04 11:17:39 +00:00
										 |  |  |  | #if NO_AD | 
					
						
							|  |  |  |  |             return; | 
					
						
							|  |  |  |  | #endif | 
					
						
							| 
									
										
										
										
											2022-05-27 16:06:04 +00:00
										 |  |  |  |             NativeAd.Instance.ShowNativeAd(adpos); | 
					
						
							| 
									
										
										
										
											2022-05-23 13:39:59 +00:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public void RemoveNative() | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2022-07-04 11:17:39 +00:00
										 |  |  |  | #if NO_AD | 
					
						
							|  |  |  |  |             return; | 
					
						
							|  |  |  |  | #endif | 
					
						
							| 
									
										
										
										
											2022-05-23 13:39:59 +00:00
										 |  |  |  |             ToukaAdManager.Instance.HideNative(false); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | } |