Я создал систему ежедневных наград, в которой игрок может получать около трех 500 монет в день, например 1/3 золотых монет. Я использую Admob Unity Plugin , чтобы показать игроку вознагражденные видео, когда они нажимают на кнопку, чтобы получить 500 золотых монет, на кнопку можно нажать 3 раза, и каждый раз, когда игрок смотрит видео наград, он получает 500 золотые монеты.
Моя проблема:
1: Если пользователь нажимает на кнопку вознаграждения и впервые полностью просматривает видео с вознаграждением, мой int увеличится до 1, а игрок получит 500 монет - ( так что 1/3 с 500 монетами
1008 * 2: если пользователь нажимает на кнопку вознаграждения второй раз, но затем решает закрыть видео вознаграждения, int будет
не увеличиваться и игрок
не награждается 500 монетами (это все еще 1/3 с 500 монетами)
3: но если пользователь решит нажать на кнопку вознаграждения, а затем решил Посмотрите новое видео с наградами полностью, int увеличится на 2 (вместо 1), и игрок теперь будет вознагражден 1000 золотых монет (вместо 500) - (сейчас, 3/3 с 1500 золотыми монетами)
ПРИМЕЧАНИЕ: в этом порядке не указано c, пользователь может сделать этот метод с самого начала или до того, как int достигнет 3/3, и сделать это, однако, много раз пользователь хочет, просто закрывая видео наград много времени (не завершая видео ео) пока не доволен, а затем просмотр видео награды полностью 3 раза.
Я не буду включать свой ежедневный сценарий вознаграждения, поскольку я не верю, что это вызывает мою проблему. Пожалуйста, кто-нибудь может мне помочь с этим, спасибо !!!!
Это мой сценарий вознаграждения:
{
public Admob ad;
public int clickInt = 0;
public Text clickText;
public Image coinImage;
public Button rewardButton;
void Awake()
{
if (PlayerPrefs.HasKey("amount"))
{
clickInt = PlayerPrefs.GetInt("amount");
}
}
void Start ()
{
#if UNITY_EDITOR
Debug.Log("Unable to play ad in the EDITOR");
if (clickInt == 1) {
clickText.text = "1/3 Daily uses";
} else if (clickInt == 2) {
clickText.text = "2/3 Daily uses";
} else if (clickInt >= 3) {
clickInt = 3;
}
if (clickInt == 3) {
clickText.text = "3/3 Daily uses";
}
#elif UNITY_ANDROID
if (clickInt == 1) {
clickText.text = "1/3 Daily uses";
} else if (clickInt == 2) {
clickText.text = "2/3 Daily uses";
} else if (clickInt >= 3) {
clickInt = 3;
}
if (clickInt == 3) {
clickText.text = "3/3 Daily uses";
}
#endif
}
// Update is called once per frame
void Update()
{
#if UNITY_EDITOR
Debug.Log("Unable to play ad in the EDITOR");
if (clickInt == 1) {
clickText.text = "1/3 Daily uses";
} else if (clickInt == 2) {
clickText.text = "2/3 Daily uses";
} else if (clickInt >= 3) {
clickInt = 3;
}
if (clickInt == 3) {
clickText.text = "3/3 Daily uses";
}
#elif UNITY_ANDROID
ad = Admob.Instance ();
if (ad.isRewardedVideoReady ()) {
coinImage.enabled = true;
} else {
ad.loadRewardedVideo ("ca-app-pub-…………………/……………");
coinImage.enabled = false;
}
if (clickInt == 1) {
clickText.text = "1/3 Daily uses";
rewardButton.interactable = true;
} else if (clickInt == 2) {
clickText.text = "2/3 Daily uses";
rewardButton.interactable = true;
} else if (clickInt >= 3) {
clickInt = 3;
}
if (clickInt == 3) {
clickText.text = "3/3 Daily uses";
rewardButton.interactable = false;
}
#endif
}
public void Free_500_Coins()
{
#if UNITY_EDITOR
Debug.Log("Unable to play ad in the EDITOR");
clickInt += 1;
ShopManager.Playercurrency += 500;
#elif UNITY_ANDROID
if (ad.isRewardedVideoReady ()) {
Admob.Instance().interstitalRewardHandler += onInterstitalRewardVideoEvent;
coinImage.enabled = true;
ad.showRewardedVideo ();
} else {
ad.loadRewardedVideo ("ca-app-pub-............/...........");
coinImage.enabled = false;
}
#endif
}
void onInterstitalRewardVideoEvent(string eventNames, string msgs)
{
if (eventNames == "onRewarded")
{
Admob.Instance().interstitalRewardHandler -= onInterstitalRewardVideoEvent;
Debug.Log("Well Done! You got 500 coins");
clickInt += 1;
ShopManager.Playercurrency += 500;
Debug.Log("handler AdmobEventsHandler---" + eventNames + " " + msgs);
}
}
public void OnDestroy()
{
Admob.Instance().interstitalRewardHandler -= onInterstitalRewardVideoEvent;
}
}```