ユニティのインタースティシャル広告用にこのコードを使用しています。レベルが終了して新しいレベルが開始されるたびに、フルスクリーン広告を開始したいので、OnDestroy機能を使用します。の間:ゲームの円滑な実行のためのコードは正しいですか? InterstitialAd
インスタンス参照(interstitial
)を保持しているスクリプトは、(GoogleAdsScript
)を破壊しようとしている場合のおかげで、すべての答えと私の英語のため申し訳ありません:)ユニティのインタースティシャル広告
public class GoogleAdsScript : MonoBehaviour
{
bool isLoaded = false;
private InterstitialAd interstitial;
private BannerView bannerView;
void Start()
{
RequestInterstitial();
//RequestBanner();
}
void OnDestroy()
{
if (interstitial.IsLoaded() && isLoaded == false)
{
interstitial.Show();
isLoaded = true;
}
}
private void RequestInterstitial()
{
#if UNITY_ANDROID
string adUnitId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
string adUnitId = "INSERT_IOS_INTERSTITIAL_AD_UNIT_ID_HERE";
#else
string adUnitId = "unexpected_platform";
#endif
// Initialize an InterstitialAd.
interstitial = new InterstitialAd(adUnitId);
// Create an empty ad request.
AdRequest request = new AdRequest.Builder().Build();
// Load the interstitial with the request.
interstitial.LoadAd(request);
}
private void RequestBanner()
{
#if UNITY_ANDROID
string adUnitId = "ca-app-pub-3940256099942544/6300978111";
#elif UNITY_IPHONE
string adUnitId = "INSERT_IOS_BANNER_AD_UNIT_ID_HERE";
#else
string adUnitId = "unexpected_platform";
#endif
// Create a 320x50 banner at the top of the screen.
bannerView = new BannerView(adUnitId, AdSize.SmartBanner, AdPosition.Top);
// Create an empty ad request.
AdRequest request = new AdRequest.Builder().Build();
// Load the banner with the request.
bannerView.LoadAd(request);
}
}
3レベルごとに広告を使用する場合は、interstitial.destroy()を呼び出す必要がありますか? – Adam
あなたは私の答えを理解していないように聞こえます。その部分が混乱しているかどうか質問することができます。 'interstitial = new InterstitialAd(adUnitId);'を実行する場合は、 'OnDestroy'または' OnDisable'関数で 'interstitial.destroy();'を実行する必要があります。私はあなたに、すべてが入っているあなたのシーンにただ1つの 'GoogleAdsScript'を持たせる方法を示しました。あなたが私の答えでその方向に従うなら、あなたはそれを破壊する必要はありません。 – Programmer
私はスクリプトを変更します:void Update() { if(interstitial.IsLoaded()&& isLoaded == false) { interstitial.Show ; isLoaded = true; }} ボイドOnDestroy(){ IF(interstitial.IsLoaded())interstitial.Destroy(); } 'これはクリーンな方法ですか? – Adam