所以我将亚马逊移动广告整合到我的unity / ios项目中。每当场景发生变化时,我都会努力将广告隐藏起来。每次打开场景时,广告都会显示。所以除非你很快改变场景,否则一切正常。我不想在主游戏中播放广告,因为它会妨碍用户的观看。每次进入重试场景时,如果您在广告加载之前快速切换到该场景,该广告将停留在下一个场景上,从而在其上展示另一个广告。每当场景发生变化时,无论您更改场景的速度如何,都应该隐藏广告。是否有任何方法可以确保在展示广告时隐藏广告?我使用下面的代码:
void Start() {
mobileAds = AmazonMobileAdsImpl.Instance;
ApplicationKey key = new ApplicationKey();
key.StringValue = iosKey;
mobileAds.SetApplicationKey(key);
ShouldEnable enable = new ShouldEnable();
enable.BooleanValue = true;
mobileAds.EnableTesting(enable);
mobileAds.EnableLogging(enable);
Placement placement = new Placement();
placement.Dock = Dock.BOTTOM;
placement.HorizontalAlign = HorizontalAlign.CENTER;
placement.AdFit = AdFit.FIT_AD_SIZE;
response = mobileAds.CreateFloatingBannerAd(placement);
string adType = response.AdType.ToString();
long identifer = response.Identifier;
newResponse = mobileAds.LoadAndShowFloatingBannerAd(response);
bool loadingStarted = newResponse.BooleanValue;
}
void OnDestroy() {
mobileAds.CloseFloatingBannerAd(response);
response = null;
mobileAds = null;
newResponse = null;
}
答案 0 :(得分:1)
您何时下载Unity插件?在插件的早期版本中存在一些问题,这听起来像(整个,一个广告加载到另一个东西之上)。如果您最近没有更新它,请尝试从亚马逊下载最新版本,看看问题是否仍然存在。
答案 1 :(得分:0)
关闭广告API
mobileAds.CloseFloatingBannerAd(response);
仅在广告已加载时才有效。您需要注册广告加载的活动。如果场景被销毁,那么您将在广告加载的事件触发时关闭广告。
您可以按照以下方式注册AdLoaded
事件,Documentation
using com.amazon.mas.cpt.ads;
bool sceneDestroyed = false; //tracks if scene is destroyed
//Obtain object used to interact with the plugin
IAmazonMobileAds mobileAds = AmazonMobileAdsImpl.Instance;
// Define event handler
private void EventHandler(Ad args)
{
if (sceneDestroyed)
{
mobileAds.CloseFloatingBannerAd(response);
}
else
{
//Do some other job
}
}
//Register for an event
mobileAds.AddAdLoadedListener(EventHandler);
void OnDestroy()
{
sceneDestroyed = true;
}