yyl
2026-03-26 f4a702e212d1853735f8dae399da69d23bfa510e
Main/System/BoneField/AdsManager.cs
@@ -1,11 +1,17 @@
using System;
using System.Collections.Generic;
using UnityEngine;
public class AdsManager : GameSystemManager<AdsManager>
{
    //<广告ID,今日已领取广告奖励次数>
    private Dictionary<int, int> adsInfoDict = new Dictionary<int, int>();
    public event Action<int, int, int> OnAdsInfoListUpdateEvent;//ADID type value
    public Dictionary<int, Redpoint> redPointDict = new Dictionary<int, Redpoint>();
    public int waitAdID = 0;  //回调后发放奖励用
    int loadErrorCD = 10;   //等待10秒后才能再请求
    public float lastLoadErrorTime = 0;
    public override void Init()
    {
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitializeEvent;
@@ -45,6 +51,7 @@
    public void OnBeforePlayerDataInitializeEvent()
    {
        waitAdID = 0;
        adsInfoDict.Clear();
    }
@@ -66,9 +73,56 @@
        GameNetSystem.Instance.SendInfo(pack);
    }
    //如果有广告SDK接入,该函数改成回调触发
    //区分不同渠道是否有广告SDK
    public void PlayAds(int ADID)
    {
        if (!InvestModel.Instance.IsInvested(InvestModel.monthCardType) &&
        !InvestModel.Instance.IsInvested(InvestModel.foreverCardType))
        {
            //有广告的SDK
            if (VersionConfig.Get().appId == "ryzj" && !GeneralDefine.noAdsChannels.Contains(SDKUtils.channelSign))
            {
                //视频加载失败需要等10秒后再调用
                //奖励需要设置标识对应发放
                if (WaitForLoadNewAd())
                {
                    SysNotifyMgr.Instance.ShowTip("AdLoadFail");
                    return;
                }
                waitAdID = ADID;
                SDKUtils.Instance.PlayAds("b69a2b68bb3d22");
                return;
            }
        }
        //没广告的SDK 直接给奖励
        GetAdsAward(ADID);
    }
    public void LoadAds()
    {
        if (VersionConfig.Get().appId == "ryzj")
        {
            if (WaitForLoadNewAd())
            {
                return;
            }
            SDKUtils.Instance.LoadAds("b69a2b68bb3d22");
        }
    }
    //上一次加载失败,检查是否需要等待
    public bool WaitForLoadNewAd()
    {
        if (Time.time - lastLoadErrorTime < loadErrorCD)
        {
            return true;
        }
        return false;
    }
    public void GetAdsAward(int ADID)
    {
        switch (ADID)
        {
            case 1: