При просмотре не пропускаемой рекламы у игрока вычитается его общее количество шагов (сделанных в игре) из его шагов что он сделал на конкретном уровне. Вот код вычитания.
public void RewardForRewardedAds()
{
StepsAllGame -= StepsOneLvl;
Debug.Log(StepsAllGame);
Trigger.S.AdsReturnToTGame();
SaveSteps();
}
Затем когда он умирает , вызывается меню просмотра рекламы и там я запускаю этот же код :
public void OnUnityAdsShowComplete(string placementId, UnityAdsShowCompletionState showCompletionState)
{
if (_adUnitId.Equals(_adUnitId) && showCompletionState.Equals(UnityAdsShowCompletionState.COMPLETED))
{
SwipeDetecion.A.RewardForRewardedAds();
Advertisement.Load(_adUnitId , this);
}
}
Только вот проблема вот в чём , код выполняется несколько раз и в итоге вычитает не правильное значение (допустим общее количество шагов = 10 , а шагов за уровень = 5 . Я из 10 вычитаю 5 = 5 (так должно быть) , но у меня получаются случайные числа 2,4, 8 и тд. В консоли я вижу что он вычитает несколько раз за секунду , и это всегда рандомно сколько раз (может выполнить вычитание 2 раза может 5)) Так вот я подумал , может быть что бы это предотвратить нужно сделать некаю задержку , что бы скрипт вычитался 1 раз и тп.
Вот только как это сделать я не знаю(