Мне нужно проверить, загружено или нет видео с вознаграждением, поэтому у меня есть эта функция:
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()
, за исключением AdmobController.instance.RequestRewardBasedVideo();
и return true
, и я запускаю свою программу, и проблема все еще существует, сообщение Dummy IsLoaded продолжает показываться без остановки.так что я думаю проблема из этого утверждения AdmobController.instance.RequestRewardBasedVideo();
.