2016-03-24 4 views
0

Also integrierte ich Amazon Mobile-Anzeigen in meine Einheit/iOS-Projekt. Ich habe alles funktioniert, wo ich die Anzeigen jedes Mal ausblenden, wenn sich eine Szene ändert. Jedes Mal, wenn ich eine Szene öffne, wird die Anzeige angezeigt. Es funktioniert alles gut, außer wenn Sie Szenen schnell wechseln. Ich möchte keine Werbung im Hauptspiel, da dies die Sicht der Nutzer behindert. Jedes Mal, wenn Sie zur Wiederholungsszene gelangen, wenn Sie kurz vor dem Laden einer Anzeige von dieser Szene wechseln, bleibt diese Anzeige in der nächsten Szene hängen, wodurch eine weitere Anzeige darüber eingeblendet wird. Jedes Mal, wenn sich eine Szene ändert, sollte die Anzeige ausgeblendet werden, unabhängig davon, wie schnell Sie die Szene wechseln. Gibt es eine Möglichkeit, sicherzustellen, dass die Anzeige ausgeblendet wird, wenn eine Anzeige geschaltet wird? Ich verwende den folgenden Code:So verstecken Sie Amazon-Anzeigen in Einheit

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; 
} 
+0

Vielleicht ist dies eine dumme Frage, aber warum nur mit einem Ad-Service integrieren, um die Anzeigen zu verbergen? Oder gibt es mehr dazu? – Krease

+0

Wir wollen nur Anzeigen während des Spiels verstecken, aber die Anzeigen auf allen anderen Szenen zeigen. – Joey

Antwort

0

Die enge Anzeige API

mobileAds.CloseFloatingBannerAd(response); 

nur, wenn die Anzeige geladen wird schon funktionieren. Sie müssen sich für das adload-Ereignis registrieren. Wenn die Szene zerstört wird, schließen Sie die Anzeige, wenn die Anzeige die Ereignis-Tigger geladen hat.

können Sie für AdLoaded Ereignis registrieren wie folgt Documentation

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; 
    } 
1

Wann haben Sie das Unity Plugin heruntergeladen? Es gab einige Probleme in einer frühen Version des Plugins, das klingt wie (das Ganze, eine Anzeige, die über eine andere Sache geladen wird). Wenn Sie es kürzlich nicht aktualisiert haben, versuchen Sie, die neueste Version von Amazon herunterzuladen und nachzusehen, ob das Problem weiterhin auftritt.

+0

Ich habe es vor einer Woche heruntergeladen, also sollte es aktuell sein, es sei denn, sie haben gerade einen veröffentlicht. – Joey

Verwandte Themen