在我的游戏中,我有4个不同的场景。 现在我想刊登一些AdMob横幅广告,但只是在这4个场景中的2个。
我试过这样的话。
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.route
.data
.subscribe(data=> {
this.data= data || {};
});
}
问题是,广告仍会显示在每个场景中。
有人知道如何解决这个问题吗?
答案 0 :(得分:4)
广告在每个场景中展示,因为bannerview附加到GameViewController(充当超级视图),该视图保存子场景。
在viewDidLoad()
中创建并加载横幅广告,并将其隐藏在您不希望其显示的场景中,然后在您想要的场景中显示:
class GameViewController: UIViewController, GADBannerViewDelegate {
var bannerView: GADBannerView!
override func viewDidLoad() {
super.viewDidLoad()
bannerView = GADBannerView(adSize: kGADAdSizeBanner)
self.view.addSubview(bannerView)
let request = GADRequest()
request.testDevices = [kGADSimulatorID]
bannerView.rootViewController = self
bannerView.delegate = self
bannerView.adUnitID = "ca-app-pub-2567181742111069/9977523039"
bannerView.load(request)
bannerView.center = CGPoint(x: 329, y: 350)
if let view = self.view as! SKView? {
// Load the SKScene from 'GameScene.sks'
if var scene = StartScene(fileNamed: "StartScene") {
// Set the scale mode to scale to fit the window
scene.scaleMode = .aspectFill
// Present the scene
self.bannerView.isHidden = true
view.presentScene(scene)
}
if var scene = MainMenuScene(fileNamed: "MainMenuScene") {
self.bannerView.isHidden = false
}
view.ignoresSiblingOrder = true
view.showsPhysics = false
view.showsFPS = false
view.showsNodeCount = false
}
}
您还可以使用addSubView
和removeFromSuperview
函数在superview(GameViewController)及其窗口中添加/删除