1
因此,我發現了兩種在我的SpriteKit遊戲中顯示Google廣告的方式......這兩種方式都可以工作,但我擔心其中一種方式更高效。在SpriteKit/Swift中顯示GADBannerView的最佳方式
我的遊戲只有1 ViewController
和1 GameScene
。與兩種實現的區別在於何時何地創建它們。
都需要:
import GoogleMobileAds
var googleBannerView: GADBannerView!
這是我的方式第一個實現它:
在:GameViewController.swift
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
googleBannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait)
googleBannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716"
googleBannerView.rootViewController = self
let request: GADRequest = GADRequest()
googleBannerView.loadRequest(request)
googleBannerView.frame = CGRectMake(0, view.bounds.height - googleBannerView.frame.size.height, googleBannerView.frame.size.width, googleBannerView.frame.size.height)
self.view.addSubview(googleBannerView!)
if let skView = self.view as? SKView { //cast root as SKView
if skView.scene == nil {
//create and present gameScene
}
}
}
這是第二種方式:
在:GameScene.swift
override func didMoveToView(view: SKView) {
googleBannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait)
googleBannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716"
googleBannerView.rootViewController = self.view?.window?.rootViewController
let request: GADRequest = GADRequest()
googleBannerView.loadRequest(request)
googleBannerView.frame = CGRectMake(0, view.bounds.height - googleBannerView.frame.size.height, googleBannerView.frame.size.width, googleBannerView.frame.size.height)
self.view?.addSubview(googleBannerView!)
addChild(worldNode) //make whole world a node, create game nodes, in worldNode
switchToMainMenu() //go to menu menu
}
我想唯一的真正區別是如何設置的rootViewController
,並給予我的比賽不僅具有1 ViewController中,無論工作...
這將是更好地執行?
我做出了正確的決定,然後改變了aha。感謝您的確認。 – Reanimation
你也可以使用一個幫手,比如我放在github上的幫手。在viewController中放置所有的廣告代碼也很麻煩。 https://github.com/crashoverride777/Swift-2-iAds-and-AdMob-Helper – crashoverride777
你結合了iAD和admob嗎?你可以通過admob來完成iAd – Knight0fDragon