【发布时间】:2019-01-30 10:22:36
【问题描述】:
我需要检查奖励视频是否加载,所以我有这个功能:
private bool IsAdAvailable()
{
if (AdmobController.instance.rewardBasedVideo == null) return false;
bool isLoaded = AdmobController.instance.rewardBasedVideo.IsLoaded();
if (!isLoaded)
{
AdmobController.instance.RequestRewardBasedVideo();
}
return isLoaded;
}
这是 RequestRewardBasedVideo 函数:
public void RequestRewardBasedVideo()
{
#if UNITY_ANDROID
string adUnitId = "ca-app-pub-3940256099942544/5224354917";
#elif UNITY_IPHONE
string adUnitId = "ca-app-pub-3940256099942544/1712485313";
#else
string adUnitId = "unexpected_platform";
#endif
// Create an empty ad request.
AdRequest request = new AdRequest.Builder().Build();
// Load the rewarded video ad with the request.
this.rewardBasedVideo.LoadAd(request, adUnitId);
}
这是显示奖励视频的功能,如果已加载,如果未加载,它将向用户显示该消息。
public void ShowRewardedAds()
{
if (rewardBasedVideo.IsLoaded())
{
rewardBasedVideo.Show();
}
else
{
MonoBehaviour.print("Reward based video ad is not ready yet");
}
}
但是当我统一运行我的程序时,在控制台中,此消息会不停地显示:
Dummy IsLoaded
UnityEngine.Debug:Log(Object)
就像程序一直在检查是否加载了奖励视频。
我已尝试删除IsAdAvailable() 中除return isLoaded 之外的所有语句,我将其替换为return true。
消息停止显示,没有停止,它只显示了一次。 这就是我想要的。
那么有没有更好的方法来检查奖励视频是否加载?
如果您需要有关我的代码的更多信息,请随时询问。
这是我的 Admob 控制器脚本: https://pastebin.com/TNNPKxQF
这是奖励视频按钮脚本: https://pastebin.com/FipHV9wt
这是奖励视频回调脚本: https://pastebin.com/g65zjBwt
#edit
我删除了IsAdAvailable() exept 的所有语句
AdmobController.instance.RequestRewardBasedVideo();
和return true
我运行我的程序,问题仍然存在,消息 Dummy IsLoaded 不断显示。
所以我认为这个声明AdmobController.instance.RequestRewardBasedVideo();的问题。
【问题讨论】:
标签: c# unity3d console admob ads