GoogleAdMobの以下のページを参考にUnityでアダプティブバナーを画面最下部固定で表示させています。
https://developers.google.com/admob/unity/banner/adaptive?hl=ja
ゲーム内の要素が広告と重ならないようにするため
アダプティブバナーの高さを取得し、その高さ分の領域を余白スペースとして確保したいのですが
AdSize adaptiveSize = AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(AdSize.FullWidth);
上記の処理の後に
adaptiveSize.Width
adaptiveSize.Height
を取得しても0となってしまい高さが取得できませんでした。
正しくアダプティブバナーの高さを取得するにはどうしたらよいでしょうか。
以下、GoogleAdMobの導入例をそのまま試したらダメでした。
private void RequestBanner() { // These ad units are configured to always serve test ads. #if UNITY_EDITOR string adUnitId = "unused"; #elif UNITY_ANDROID string adUnitId = "ca-app-pub-3212738706492790/6113697308"; #elif UNITY_IPHONE string adUnitId = "ca-app-pub-3212738706492790/5381898163"; #else string adUnitId = "unexpected_platform"; #endif // Clean up banner ad before creating a new one. if (this.bannerView != null) { this.bannerView.Destroy(); } AdSize adaptiveSize = AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(AdSize.FullWidth); this.bannerView = new BannerView(adUnitId, adaptiveSize, AdPosition.Bottom); ⇒⇒⇒ ここで adaptiveSize.Width adaptiveSize.Heightを取得しても0になってしまう // Register for ad events. this.bannerView.OnAdLoaded += this.HandleAdLoaded; this.bannerView.OnAdFailedToLoad += this.HandleAdFailedToLoad; this.bannerView.OnAdOpening += this.HandleAdOpened; this.bannerView.OnAdClosed += this.HandleAdClosed; this.bannerView.OnAdLeavingApplication += this.HandleAdLeftApplication; AdRequest adRequest = new AdRequest.Builder() .AddTestDevice(AdRequest.TestDeviceSimulator) .AddTestDevice("0123456789ABCDEF0123456789ABCDEF") .Build(); // Load a banner ad. this.bannerView.LoadAd(adRequest); }
###現状の処理
現在アダプティブバナーの高さが取得ができないため、
アンカー型のバナーの高さは、デバイスの高さの 15% 以下、または密度非依存ピクセル 90 以下で、密度非依存ピクセル 50 以上である必要があります。
上記の「デバイスの高さ15%」or「密度非依存ピクセル90」の値が大きい方を計算しその分の余白を確保しています。
回答1件
あなたの回答
tips
プレビュー