Untitled
unknown
plain_text
2 years ago
4.7 kB
5
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