SKScene не будет отображаться при добавлении SubView для просмотра контроллера - PullRequest
0 голосов
/ 31 марта 2020

Я попытался добавить подпредставление к своему GameViewController (потому что я хочу добавить рекламный баннер внизу). Я создал его следующим образом:

    if let view = self.view as! SKView? {
        let subView = SKView(frame: CGRect(origin: CGPoint.zero, size: CGSize(width: 415, height: 685)))
        view.addSubview(subView)
        if let scene = SKScene(fileNamed: "GameScene") {
            scene.scaleMode = SKSceneScaleMode.aspectFit
            subView.presentScene(scene)
            view.ignoresSiblingOrder = true
            view.showsFPS = false
            view.showsNodeCount = false
            view.showsDrawCount = false
            addBannerViewToView(bannerView)
        }
    }

Это работает изначально - он представляет мою GameScene. Но позже я прошу мою GameScene представить еще один созданный мной подкласс SKScene, который я называю Shop, используя следующий код:

func initializeShop() {
    let shop = Shop(size: self.size)
    let transition = SKTransition.fade(withDuration: 0.1)
    self.view?.presentScene(shop!, transition: transition)
}

А его просто нет. Это остается на текущем представлении.

Это работает вполне нормально, если я НЕ добавляю подпредставление к начальному представлению в GameViewController, то есть

   if let view = self.view as! SKView? {
        if let scene = SKScene(fileNamed: "GameScene") {
            scene.scaleMode = SKSceneScaleMode.aspectFit
            view.presentScene(scene)
            view.ignoresSiblingOrder = true
            view.showsFPS = false
            view.showsNodeCount = false
            view.showsDrawCount = false
        }
    }

Так что, похоже, существует некоторое свойство SKView по умолчанию GameViewController, которое позволяет презентация, но не подпредставление. Но я не могу найти какую-либо документацию, в которой говорится, что - насколько я могу судить, все SKViews должны иметь возможность представлять SKScenes.

Любая помощь будет принята с благодарностью.

...