【发布时间】:2017-06-17 03:19:58
【问题描述】:
希望有人能帮我解决这个异常!
这里有一些背景信息:我正在使用玩家死亡时触发的奖励广告。这会加载一个“rewardAd”弹出窗口,供玩家选择观看视频以获得奖励或关闭请求并结束游戏。在游戏的初始运行中,它运行良好。奖励是获得额外的生命并继续玩游戏。这也很好用。
但是...当玩家第二次死亡时,会显示“rewardAd”弹出窗口,但是当单击“播放广告”按钮时,弹出窗口会消失,使游戏处于暂停状态...从这里开始,仍然显示在屏幕上的暂停按钮处于活动状态,单击时会弹出“暂停”弹出菜单。如果点击恢复游戏按钮,“rewardAd”弹窗将再次显示...如果这次点击“播放广告”按钮,广告将再次运行。
所以这个问题似乎会在玩家第一次死亡时运行广告,但第二次只会让游戏处于暂停状态......除非你点击暂停按钮以调出“暂停”弹出菜单然后从该菜单继续,该菜单再次返回“rewardAd”弹出窗口,然后这一次广告确实加载并再次运行,一切都恢复正常。
所以我的问题是,为什么当我第二次死亡时视频广告不能正确加载,除非我暂停游戏(处于其已经暂停的状态)然后恢复并再次获得rewardAd弹出窗口然后它会再次投放广告。
由于某种原因,它只会在“rewardAd”弹出窗口被重新触发两次时重新加载视频广告。
这是我的代码:
在播放器类中:
void fixedUpdate () {
if (health == 0) {
helthSprite.fillAmount = 0f;
GameObject.Find ("RewardAdPopup").GetComponent<TweenAlpha> ().PlayForward ();
GeneralScript.instance.pauseGame();
}
}
现在“rewardAdPopup”有两个按钮“播放”和“关闭”,分别在GeneralScript类中附加了这两个方法:
public void showAd ()
{
isRewarded = false;
Admob.Instance ().loadRewardedVideo ("ca-app-pub-3917955116464255/1873040720");
Admob.Instance ().rewardedVideoEventHandler += onRewardVideoEvent;
if (Admob.Instance ().isRewardedVideoReady ()) {
Admob.Instance ().showRewardedVideo ();
}
}
public void adDeclined ()
{
Bird.instance.showGameOverPopup ();
}
现在我在“start”方法(在底部)中也有“loadVideo”实例 - 否则即使是第一次也不会加载视频:
void Start ()
{
instance = this;
if (Application.loadedLevelName.Equals ("GameScene")) {
InvokeRepeating ("IncreseSpeed", 0f, GameManager.MaxSpawnTime);
}
checkSound ();
Admob.Instance ().loadRewardedVideo ("ca-app-pub-3917955116464255/1873040720");
}
最后,“onRewardVideoEventMethod”:
void onRewardVideoEvent(string eventName, string message) {
if (eventName == AdmobEvent.onAdClosed) {
print ("Ad Closed");
if (isRewarded) {
print ("ad watched");
Bird.instance.health = GameManager.curBirdHealth;
resumeGame ();
} else {
adDeclined ();
}
} else if (eventName == AdmobEvent.onRewarded) {
print ("Ad Rewarded");
isRewarded = true;
} else if (eventName == AdmobEvent.adViewWillDismissScreen) {
if (isRewarded) {
print("ad dismissed");
Bird.instance.health = GameManager.curBirdHealth;
resumeGame ();
}
}
}
我确定问题出在此处...可能与 UI Button 脚本下 Unity Inspector 中的“播放”按钮的“OnClick”设置有关,但我不确定。
任何帮助将不胜感激!这让我很难过……
【问题讨论】: