Swift 如何在SpriteKit中的SKScene上显示AdMob横幅广告?

Swift 如何在SpriteKit中的SKScene上显示AdMob横幅广告?,swift,sprite-kit,admob,skscene,firebase-admob,Swift,Sprite Kit,Admob,Skscene,Firebase Admob,我想在场景上显示AdMob横幅广告。现在,我在GameViewController中有以下代码,但场景中没有显示任何内容。我是否需要在SKScene的didMove方法中包含代码,或者我只是在我的GameViewController中遗漏了什么 import UIKit import SpriteKit import GoogleMobileAds class GameViewController: UIViewController { var bannerView: GADBann

我想在场景上显示AdMob横幅广告。现在,我在
GameViewController
中有以下代码,但场景中没有显示任何内容。我是否需要在SKScene的
didMove
方法中包含代码,或者我只是在我的
GameViewController
中遗漏了什么

import UIKit
import SpriteKit
import GoogleMobileAds

class GameViewController: UIViewController {

    var bannerView: GADBannerView!
    
    override var prefersStatusBarHidden: Bool {
        return true
    }
    override func viewDidLoad() {
        if view.frame.height > 736 {
            Screen.hasNotch = true
        }
        super.viewDidLoad()
        if let view = self.view as! SKView? {
            // Load the SKScene from 'GameScene.sks'
            let scene = MenuScene(size: UIScreen.main.bounds.size)
            // Set the scale mode to scale to fit the window
            scene.scaleMode = .fill
            // Present the scene
            view.presentScene(scene)
            view.ignoresSiblingOrder = true
            view.showsFPS = false
            view.showsNodeCount = false
        }
        bannerView = GADBannerView(adSize: kGADAdSizeBanner)
        addBannerViewToView(bannerView)
        bannerView.adUnitID = AdMob.bannerid
        bannerView.rootViewController = self
        bannerView.load(GADRequest())
    }

//MARK: - AdMob
    
    func adViewDidReceiveAd(_ bannerView: GADBannerView) {
      bannerView.alpha = 0
      UIView.animate(withDuration: 1, animations: {
        bannerView.alpha = 1
      })
    }
    
    func addBannerViewToView(_ bannerView: GADBannerView) {
        bannerView.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(bannerView)
        view.addConstraints(
          [NSLayoutConstraint(item: bannerView,
                              attribute: .bottom,
                              relatedBy: .equal,
                              toItem: view.safeAreaLayoutGuide.bottomAnchor,
                              attribute: .top,
                              multiplier: 1,
                              constant: 0),
           NSLayoutConstraint(item: bannerView,
                              attribute: .centerX,
                              relatedBy: .equal,
                              toItem: view,
                              attribute: .centerX,
                              multiplier: 1,
                              constant: 0)
          ])
    }
    
}

这个问题已经解决了。我没有在Admob帐户上输入我的账单信息,因此我的帐户验证尚未处理。这导致广告没有出现。如果您有相同的问题,我建议:

  • 将您的设备注册为测试设备
  • 使用

  • 如果出现测试广告,请确保您已采取必要的措施来验证您的帐户。当试图在场景上显示广告时,上述代码工作正常。

    此问题已得到解决。我没有在Admob帐户上输入我的账单信息,因此我的帐户验证尚未处理。这导致广告没有出现。如果您有相同的问题,我建议:

  • 将您的设备注册为测试设备
  • 使用

  • 如果出现测试广告,请确保您已采取必要的措施来验证您的帐户。当试图在SKView场景上显示广告时,上述代码非常有效。

    ViewController的视图正被
    SKView
    使用。因此,视图控制器肯定不会以这种方式显示广告。
    SKView
    正在使用视图控制器的视图。因此,视图控制器肯定不会以这种方式显示广告。