Untitled
unknown
plain_text
2 years ago
4.7 kB
10
Indexable
using InstantGamesBridge.Modules.Advertisement;
using UnityEngine;
using InstantGamesBridge;
using UnityEngine.UI;
public class AdManager : MonoBehaviour
{
public Button adButton;
public AudioSource musicAudioSource;
public Text timerText;
public Coins coinsScript;
public ButtonSpriteChange ballScript;
public Text bollTextup;
public Text coinsTextup;
public GameObject buttonoff;
private float adTimerDuration = 5f;
private float currentAdTimer = 0f;
private bool isAdShowing = false;
void Start()
{
if (adButton != null)
{
adButton.onClick.AddListener(ShowRewardedAd);
}
else
{
Debug.LogError("Ad Button not assigned.");
}
}
void Update()
{
if (isAdShowing)
{
currentAdTimer -= Time.deltaTime;
timerText.text = Mathf.CeilToInt(currentAdTimer).ToString();
if (currentAdTimer <= 0f)
{
isAdShowing = false;
buttonoff.SetActive(true);
timerText.text = "Ad Available";
// Вызываем метод для сброса множителя
ResetMultiplier();
}
}
}
void UpdateBollText()
{
// Обновляем текст с текущим значением переменной value
bollTextup.text = "+ " + ballScript.value.ToString();
coinsTextup.text = "+ " + coinsScript.value.ToString();
}
void ShowRewardedAd()
{
musicAudioSource.Pause();
Bridge.advertisement.rewardedStateChanged += OnRewardedStateChanged;
Bridge.advertisement.ShowRewarded();
}
void OnRewardedStateChanged(RewardedState state)
{
Debug.Log(state);
switch (state)
{
case RewardedState.Opened:
// Действия при открытии рекламы (возможно, остановка звука)
musicAudioSource.Pause();
break;
case RewardedState.Closed:
// Действия при закрытии рекламы (возможно, восстановление звука)
musicAudioSource.UnPause();
// Деактивируем кнопку
buttonoff.SetActive(false);
// Проверяем, была ли уже просмотрена реклама
if (!isAdShowing)
{
// Запускаем таймер только если реклама еще не просматривалась
currentAdTimer = adTimerDuration;
isAdShowing = true;
coinsScript.value *= 2;
ballScript.value *= 2;
UpdateBollText();
}
break;
case RewardedState.Failed:
// Действия при ошибке воспроизведения рекламы
break;
case RewardedState.Rewarded:
// Дополнительные действия при получении награды
break;
}
}
void ResetMultiplier()
{
// Проверяем, входит ли значение в указанные категории для coinsScript
if (IsInCategory(coinsScript.value) || coinsScript.value % 3 == 0)
{
// Если да, то просто делим на 2
coinsScript.value /= 2f;
}
else
{
// Если нет, то делим на 2 и прибавляем 1.5
coinsScript.value = coinsScript.value / 2f + 1.5f;
}
// Проверяем, входит ли значение в указанные категории для ballScript
if (ballScript.value % 3 == 0 || IsInCategory(ballScript.value))
{
// Если да, то просто делим на 2
ballScript.value /= 2f;
}
else
{
// Если нет, то делим на 2 и прибавляем 1.5
ballScript.value = ballScript.value / 2f + 1.5f;
}
UpdateBollText();
// Можешь добавить другие действия по необходимости
}
bool IsInCategory(float value)
{
// Проверяем, входит ли значение в указанные категории
int intValue = Mathf.RoundToInt(value);
return (intValue % 10 == 0) || (intValue % 3 == 1);
}
}
Editor is loading...
Leave a Comment