2022-05-23 13:39:59 +00:00
|
|
|
|
using System.Collections;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Touka
|
|
|
|
|
|
{
|
|
|
|
|
|
public class AutoIntersititialManager : TGSingleton<AutoIntersititialManager>
|
|
|
|
|
|
{
|
|
|
|
|
|
public const string hasUploadEvent = "hasUploadEvent";
|
|
|
|
|
|
public int InterstitialShowCount = 0;
|
|
|
|
|
|
|
|
|
|
|
|
private TimerCounter t;
|
|
|
|
|
|
private bool mIsActive = false;
|
|
|
|
|
|
|
|
|
|
|
|
public void Init()
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void Initialize()
|
|
|
|
|
|
{
|
|
|
|
|
|
base.Initialize();
|
|
|
|
|
|
t = gameObject.AddComponent<TimerCounter>();
|
|
|
|
|
|
t.StartTimer(AutoShowIntersititial, 3, int.MaxValue);
|
|
|
|
|
|
|
|
|
|
|
|
ActiveLogic(false);
|
|
|
|
|
|
t.PauseTimer(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void ActiveLogic(bool pIsActive)
|
|
|
|
|
|
{
|
|
|
|
|
|
mIsActive = pIsActive;
|
|
|
|
|
|
t.PauseTimer(!pIsActive);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void PauseTimer(bool pPause)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (mIsActive)
|
|
|
|
|
|
{
|
|
|
|
|
|
t.PauseTimer(pPause);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#region 自动播放插屏逻辑
|
|
|
|
|
|
public void AutoShowIntersititial()
|
|
|
|
|
|
{
|
|
|
|
|
|
//1.支持在线参数控制自动插屏方案开关,本地默认关闭,在线参数为1则打开,0则关闭;
|
|
|
|
|
|
int autoShowIVSwitch = TKGSDKManager.Instance.GetConfigInt(ToukaInnerParamKey.Auto_Show_IVSwitch_OnlineParam.ToString(), 0);
|
|
|
|
|
|
LogEvent();
|
|
|
|
|
|
if (autoShowIVSwitch == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
t.CancelTimer();
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
//3.支持在线参数控制用户每次打开游戏,展示N次插屏后,才启用自动插屏逻辑,(若N = 0,则代表每次打开都直接启用该逻辑),本地默认N = 1;
|
|
|
|
|
|
int ivShowCounts = TKGSDKManager.Instance.GetConfigInt(ToukaInnerParamKey.Auto_Show_IV_Counts_OnlineParam.ToString(), 1);
|
|
|
|
|
|
if (ivShowCounts == 0 || InterstitialShowCount >= ivShowCounts)
|
|
|
|
|
|
{
|
|
|
|
|
|
CanAutoShowIntersititial();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void LogEvent()
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
int hasLogged = ToukaUtils.GetPlayerPrefsIntByKey(hasUploadEvent);
|
|
|
|
|
|
if (hasLogged != 10000)
|
|
|
|
|
|
{
|
2022-05-27 16:06:04 +00:00
|
|
|
|
string eventValue = string.Format("{0}_{1}_{2}", TKGSDKManager.Instance.GetConfigInt(ToukaInnerParamKey.Auto_Show_IVSwitch_OnlineParam.ToString(), 0), TKGSDKManager.Instance.GetConfigInt(ToukaInnerParamKey.Auto_Show_IV_Counts_OnlineParam.ToString(), 1), TKGSDKManager.Instance.GetConfigInt(ToukaInnerParamKey.Auto_Show_IV_MinTime_OnlineParam.ToString(), 30));
|
|
|
|
|
|
ToukaSDKManager.Instance.LogEventByUmeng("Autoiv", StaticStringsEvent.Event_Type_TKInner_ad_position, eventValue);
|
2022-05-23 13:39:59 +00:00
|
|
|
|
ToukaUtils.SavePlayerPrefsIntByKeyValue(hasUploadEvent, 10000);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void CanAutoShowIntersititial()
|
|
|
|
|
|
{
|
|
|
|
|
|
float ivIntervalTime = TKGSDKManager.Instance.GetConfigInt(ToukaInnerParamKey.Auto_Show_IV_MinTime_OnlineParam.ToString(), 30);
|
|
|
|
|
|
float timeS = Time.time - ToukaInterstitialTimer.Instance.startedTime;
|
|
|
|
|
|
bool canShowFlg = timeS > ivIntervalTime;
|
|
|
|
|
|
if (canShowFlg)
|
|
|
|
|
|
{
|
|
|
|
|
|
t.PauseTimer(true);
|
|
|
|
|
|
TKGSDKManager.Instance.PlayInterstitialAd("autoShowIntersititial");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|