Нужна помощь или предложения с C # скрипт для Unity2D Android, относительно рекламы.Unity предполагает, что мой код устарел - PullRequest
0 голосов
/ 25 сентября 2019

Это код "шаблона", который я использовал для рекламы в моем проекте.Хотя реклама работает (немного медленнее при тестировании).Unity дает мне это: «ShowOptions.resultCallback» устарел: «Реализация IUnityAdsListener и вызов Advertisement.AddListener(). Я пытался делать рекламу с помощью слушателя, но он не работал ... Любые предложения?

using System.Collections;
using System.Collections.Generic;
using UnityEngine.Advertisements;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;

public class PlayerController : MonoBehaviour
{
    string gameId;
    bool testMode;
    string placementId;

    void Start()
    {
        gameId = "<my id here>";
        testMode = false;
        placementId = "<placement id here>";
        Advertisement.Initialize(gameId, true);
    }

    void ShowAd()
    {
        if (Application.internetReachability == NetworkReachability.NotReachable)
        {
            //Give internet connectivity feedback here
        }
        else
        {
            ShowOptions options = new ShowOptions();
            options.resultCallback = HandleShowResult;
            Advertisement.Show(placementId, options);
        }
    }

    void HandleShowResult(ShowResult result)
    {
        switch (result)
        {
            case ShowResult.Finished:
               //Advert completed
            break;

            case ShowResult.Skipped:
               //Advert skipped
            break;

            case ShowResult.Failed:
               //Advert failed
            break;
        }
    }
}

Изображение: ошибка, которую я получаю при использовании метода слушателя

1 Ответ

1 голос
/ 25 сентября 2019

Ошибка в основном говорит вам, что делать:

ShowOptions.resultCallback 'устарела:' реализуйте IUnityAdsListener и вызовите Advertising.AddListener () '

In API есть полный пример!Принят к вашему коду:

public class PlayerController : MonoBehaviour, IUnityAdsListener
{
    private string gameId;
    private bool testMode;
    private string placementId;

    private bool adsAreReady;

    private void Start()
    {
        gameId = "<my id here>";
        testMode = false;
        placementId = "<placement id here>";

        // WAIT FOR ADS
        Advertisment.AddListener(this);

        Advertisement.Initialize(gameId, true);
    }

    public void ShowAd()
    {
        if (Application.internetReachability == NetworkReachability.NotReachable)
        {
            //Give internet connectivity feedback here

            return;
        }

        if(!adsAreReady)
        {
            // Give not ready yet feedback

            return;
        }

        ShowOptions options = new ShowOptions();
        Advertisement.Show(placementId, options);
    }

    // Implement IUnityAdsListener interface methods:
    public void OnUnityAdsDidFinish (string placementId, ShowResult showResult) 
    {
        // Define conditional logic for each ad completion status:
        switch(showResult)
        {
            case ShowResult.Finished:
                // Reward the user for watching the ad to completion.
                break;

            case ShowResult.Skipped:
                // Do not reward the user for skipping the ad.
                break;

            case ShowResult.Failed:
                Debug.LogWarning (“The ad did not finish due to an error.);
                break;
        }
    }

    public void OnUnityAdsReady (string placementId) 
    {
        if (placementId != myPlacementId) return;

        adsAreReady = true;
    }

    public void OnUnityAdsDidError (string message) 
    {
        // Log the error.
    }

    public void OnUnityAdsDidStart (string placementId) 
    {
        // Optional actions to take when the end-users triggers an ad.
    } 
}

ПРИМЕЧАНИЕ , что в вашем коде вы никогда не вызываете ShowAdd .. это, вероятно, должно быть public и вызываться откуда-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...