继续游戏奖励是给予其他奖励

时间:2019-04-07 12:46:18

标签: c# unity3d admob rewardedvideoad

我已将google admob导入我的游戏中,并遵循此tutorial来帮助我实施奖励视频活动。我有两个不同的按钮,玩家可以单击它们来观看奖励的视频,以便玩家可以获取奖励,继续游戏按钮和双硬币按钮。

双硬币按钮使玩家每次游戏赚取的硬币数量增加一倍,继续游戏按钮使玩家上次退出游戏的游戏继续进行。双硬币奖励效果很好,我无法继续游戏奖励。

您会看到玩家何时(第一次)打开游戏,死去并单击继续游戏按钮;奖励是在视频播放后给出的,但播放器也将获得双硬币奖励。 我还注意到,再次玩完游戏并单击“继续游戏”按钮后,我不再获得继续游戏的奖励,而是获得了双币奖励。

我在AdMob脚本中创建了一个名为“ OnAdReward”的新事件,因为我认为这有助于防止将双硬币奖励添加到继续游戏奖励中。但是,这并不能解决我的问题。谁能帮我解决这个问题?谢谢!

新更新: 我也在游戏内创建了一个控制台窗口,也检查我是否发现了我不知道的任何错误,并发现当我单击继续游戏按钮时,我得到了空引用错误(但没有说出位置)。我是双币奖励,而不是继续游戏奖励。

public void ContinueGameReward() {
    Time.timeScale = 1;
    GameController.death = false;
    GameController.playerDeath = false;
    GC.isDead = false;
    playGame = true;
    pc.controlPlayer = true;
    GameOverPanel.SetActive (false);
    GameOverPanelText.enabled = false;
    heartsImage.enabled = true;
    DIED = false;
}



public void ContinueGameFromSavePoint() { 
    Admob.Instance().OnAdReward+= onAdmobEventsHandler;
    #if UNITY_EDITOR
    Debug.Log("Unable to play ad in the EDITOR");
    Debug.Log("Continue game");
    #elif UNITY_ANDROID 
    //Admob ad = Admob.Instance ();
    if (ad.isRewardedVideoReady ()) {
    ad.showRewardedVideo ();
    } else {
    ad.loadRewardedVideo ("ca-app-pub-3940256099942544/1712485313");  //this is a test ID I found on github
    }
    #endif
}

void onAdmobEventsHandler(string eventNames, string msgs)
{
    if (eventNames == "onRewarded") {
        //Add reward here!!!!
        ContinueGameReward();
        Debug.Log ("Well Done! You get a second life");
        Debug.Log ("handler AdmobEventsHandler---" + eventNames + "   " + msgs);
    }
}

public void doubleRewardFunction () {
    GameController.Coins+= GameController.doubleCoins;
    Debug.Log("CURRENCY ADDED");
}

public void DoubleRewaredPoints() {
    Admob.Instance().rewardedVideoEventHandler += onRewardedVideoEvent;
    #if UNITY_EDITOR
    Debug.Log("Unable to play ad in the EDITOR");
    Debug.Log("Double rewards");
    #elif UNITY_ANDROID
    if (ad.isRewardedVideoReady ()) {
    ad.showRewardedVideo ();
    } else {
    ad.loadRewardedVideo ("ca-app-pub-3940256099942544/1712485313"); //this is a test ID I found on github
    }
    #endif
}

void onRewardedVideoEvent (string eventName, string msg)  
{
    if (eventName == "onRewarded") {
        doubleRewardFunction ();
        Debug.Log ("handler onRewardedVideoEvent---" + eventName + "   " + msg);

    }

}

0 个答案:

没有答案