overlaySKSScene无法正常工作:SpriteKit场景不会出现在SCNView中

时间:2018-03-09 03:01:15

标签: ios sprite-kit scenekit skscene scnnode

thisthis等类似问题的答案无法解决问题。

将SpriteKit场景分配给SCNView的overlaySKScene属性不会执行任何操作:SpriteKit场景根本不会出现。

在iPhone 7和模拟器上测试过。

运行以下代码会显示一个空白屏幕。

@IBOutlet weak var sceneView: SCNView!

override func viewDidLoad() {
    let skScene = SKScene(size: UIScreen.main.bounds.size)
    skScene.backgroundColor = UIColor.black
    let node = SKSpriteNode(imageNamed: "AddButton.png")
    skScene.addChild(node)

    sceneView.overlaySKScene = skScene
    sceneView.overlaySKScene!.scaleMode = .resizeFill
    sceneView.overlaySKScene?.isHidden = false
}

1 个答案:

答案 0 :(得分:1)

设置默认的SceneKit项目后,以下代码适用于我。

override func viewDidLoad() {
  super.viewDidLoad()
  let scene = SCNScene(named: "art.scnassets/ship.scn")!
  let scnView = self.view as! SCNView
  scnView.scene = scene

  let skScene = SKScene(size: UIScreen.main.bounds.size)
  let node = SKSpriteNode(imageNamed: "testImage.png")
  skScene.addChild(node)

  scnView.overlaySKScene = skScene
  scnView.overlaySKScene!.scaleMode = .resizeFill
}

除非在视图上设置SCNScene,并且SKScene的背景颜色无效,否则叠加视图不会显示。