我使用Github的Admob API - > https://github.com/unity-plugins/Unity-Admob
我面临一个奇怪的问题。我的脚本有效!我点击按钮启动ShowRewardVideo(),它会显示视频。之后我想给我的用户赠送硬币。正如您所看到的,它只是通过添加20来增加PlayerPref中当前的硬币数量。
问题出在哪里?我没有得到+20硬币我随机额外的金额。上次是之前的+280和+320。我用其他金额测试了它,似乎我总是多次获得奖励。所以14 * 20 = 280等等。
但为什么我的剧本多次添加奖励?
你能帮帮我吗?
private void Start() {
Admob.Instance().rewardedVideoEventHandler += onRewardedVideoEvent;
}
public void ShowRewardVideo() {
if(Admob.Instance().isRewardedVideoReady()) {
Admob.Instance().showRewardedVideo();
} else {
Admob.Instance().loadRewardedVideo("ca-app-pub-5129395190259237/xxxxxxxxx");
ShowRewardVideo();
}
}
void onRewardedVideoEvent(string eventName, string msg) {
Debug.Log("handler onRewardedVideoEvent---" + eventName + " " + msg);
if(eventName == "onRewarded") {
PlayerPrefs.SetInt("mmig", PlayerPrefs.GetInt("mmig") + 20);
PlayerPrefs.Save();
}
}
答案 0 :(得分:0)
我首先要检查这部分代码被调用的频率:
if(eventName == "onRewarded") {
PlayerPrefs.SetInt("mmig", PlayerPrefs.GetInt("mmig") + 20);
PlayerPrefs.Save();
}
这样做只需调用Debug.Log(" Runned")或类似的东西。 你也应该考虑做这个部分:
PlayerPrefs.SetInt("mmig", PlayerPrefs.GetInt("mmig") + 20);
有这样的事情:
int oldAmount = PlayerPrefs.GetInt("mmig");
int newAmount = oldAmount + 20;
PlayerPrefs.SetInt("mmig",newAmount);
避免可能隐含的转换错误。但这改变了你当前的问题并不是必需的,只是一个提示:)。
请务必检查您在控制台中获得上述输出的次数