Answers to similar questions like this and this did not solve the problem.
Assigning a SpriteKit scene to the overlaySKScene
property of a SCNView does nothing: the SpriteKit scene does not appear at all.
Tested on iPhone 7 and on the Simulator.
Running the code below shows a blank white screen.
@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
}
The following code works for me after setting up a default SceneKit project.
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
}
The overlay view wouldn't show up unless the SCNScene
was set on the view, and the background colour of the SKScene
had no effect.