Если у вас есть несколько сцен, вы можете просто использовать 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();