0

因此,我将亚马逊移动广告集成到了我的 unity/ios 项目中。每次场景更改时,我都会将所有内容都隐藏到隐藏广告的位置。每次我打开一个场景,广告都会显示。所以一切都很好,除非你真的快速改变场景。我不想在主游戏中出现广告,因为它会阻碍用户的视线。每次进入重试场景时,如果您在广告加载之前快速从该场景切换,该广告将卡在下一个场景上,从而在其上显示另一个广告。每次场景更改时,无论您更改场景的速度有多快,都应该隐藏广告。如果显示广告,有什么方法可以确保它隐藏广告?我正在使用下面的代码:

void Start() {
    mobileAds = AmazonMobileAdsImpl.Instance;
    ApplicationKey key = new ApplicationKey();
    key.StringValue = iosKey;
    mobileAds.SetApplicationKey(key);

    ShouldEnable enable = new ShouldEnable();
    enable.BooleanValue = true;
    mobileAds.EnableTesting(enable);
    mobileAds.EnableLogging(enable);

    Placement placement = new Placement();
    placement.Dock = Dock.BOTTOM;
    placement.HorizontalAlign = HorizontalAlign.CENTER;
    placement.AdFit = AdFit.FIT_AD_SIZE;
    response = mobileAds.CreateFloatingBannerAd(placement);
    string adType = response.AdType.ToString();
    long identifer = response.Identifier;

    newResponse = mobileAds.LoadAndShowFloatingBannerAd(response);
    bool loadingStarted = newResponse.BooleanValue;
}


void OnDestroy() {
    mobileAds.CloseFloatingBannerAd(response);
    response = null;
    mobileAds = null;
    newResponse = null;
}
4

2 回答 2

1

您何时下载 Unity 插件?在插件的早期版本中存在一些问题,这听起来像是(整个,一个广告加载在另一件事之上)。如果您最近没有更新它,请尝试从亚马逊下载最新版本,看看问题是否仍然存在。

于 2016-03-25T00:18:05.133 回答
0

关闭广告 API

 mobileAds.CloseFloatingBannerAd(response);  

仅当广告已加载时才有效。您需要注册广告加载事件。如果场景被破坏,那么您将在广告加载事件触发时关闭广告。

您可以按以下方式注册AdLoaded活动,文档

    using com.amazon.mas.cpt.ads;

    bool sceneDestroyed = false;  //tracks if scene is destroyed



    //Obtain object used to interact with the plugin
    IAmazonMobileAds mobileAds = AmazonMobileAdsImpl.Instance;


    // Define event handler
    private void EventHandler(Ad args)
    {
       if (sceneDestroyed)
       {
            mobileAds.CloseFloatingBannerAd(response);
       }
       else
       {
           //Do some other job
       }
    }

    //Register for an event
    mobileAds.AddAdLoadedListener(EventHandler);

    void OnDestroy() 
    {
                sceneDestroyed = true;
    }
于 2016-04-05T18:36:04.700 回答