Как реализовать рекламу после 5 потерь? Единство Android - PullRequest
0 голосов
/ 22 марта 2019

Как реализовать рекламу после 5 потерь?

Как реализовать рекламу после 5 потерь?Unity Ads.Это работает, но мне нужно сделать это после того, как игрок проигрывает пять раз, объявление включено!

Вот код, который у меня есть!

using UnityEngine;
using System.Collections;
using UnityEngine.Advertisements;

public class AdsManager : MonoBehaviour 
{
    private int i = 0;

    // Use this for initialization
    void Start()
    {
        if (Advertisement.isSupported)
        Advertisement.Initialize ("23153718", false);
        else
        Debug.Log ("Platform is not supported");
        i = 0;
    }

    // Update is called once per frame
    void Update ()
    {     
        if (GameManager.singleton.isGameOver == true)
        {  
            if (i == 0)
            {
                ShowAd();
                i++;
            }  
        }
    }

    public void ShowAd()
    {
        if (Advertisement.IsReady())
        {
             Advertisement.Show();
        }
    }
}

1 Ответ

0 голосов
/ 22 марта 2019

Если у вас есть несколько сцен, вы можете просто использовать static для этого значения, поскольку это единственное значение, которое учитывается для всего приложения (таким образом, оно не зависит от экземпляров).

При правильном методе установки нет необходимости проверять счетчик каждый кадр в Update, но только при его фактическом изменении.

Если вы замените также метод Start на static конструктор , вы можете создать весь класс static, и он вообще не будет MonoBehaviour.

public static class AdsManager
{
    private static bool _isSuppoerted;

    public static int AdsCounter
    {
        get;
        private set;
    }

    public static void IncreaseAdsCounter()
    {
        AdsCounter++;

        if (AdsCounter >= 5)
        {
            ShowAd();
            AdsCounter = 0;
        }
    }

    public static void ShowAd()
    {
        if(!_isSuppoerted) 
        {
            Debug.LogWarning("AdsManager: Platform is not supported!");
            return;
        }

        if (Advertisement.IsReady())
        {
            Advertisement.Show();
        }

        // maybe reset the counter also if called from somewhere else?
        //AdsCounter = 0;
    }

    // Use this for initialization
    static AdsManager()
    {
        if (Advertisement.isSupported)
        {
            Advertisement.Initialize("23153718", false);
            _isSuppoerted = true;
        }
        else
        {
            Debug.LogWarning("AdsManager: Platform is not supported!");
            _isSuppoerted = false;
        }

        AdsCounter = 0;
    }
}

Чем из любого другого скрипта, например в течение GameManager вы можете просто позвонить

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