I’m trying to add a HUD to an SCNView using a SKScene. After overlaying the SKScene, the touchesBegan no longer detects any screen touches. Ultimatly I want to add a button to the overlay.
import UIKit
import SceneKit
import SpriteKit
class ViewController: UIViewController, SKSceneDelegate, SCNSceneRendererDelegate {
var screenView:SCNView!
var screenScene:SCNScene!
var button = SKSpriteNode(imageNamed:"button")
let overlayScene = SKScene(size: CGSize.init(width: 100, height: 100))
override func viewDidLoad() {
super.viewDidLoad()
setupScene()
}
func setupScene() {
screenView = SCNView(frame: self.view.frame)
self.view.addSubview(screenView)
screenScene = SCNScene(named: "/art.scnassets/game.scn")
screenView.delegate = self
screenView.scene = screenScene
screenView.allowsCameraControl = true
screenView.showsStatistics = false
screenView.overlaySKScene = overlayScene
screenView.overlaySKScene!.delegate = self
screenView.overlaySKScene!.anchorPoint = CGPoint(x: 0, y: 0)
screenView.overlaySKScene!.isUserInteractionEnabled = true
///// make a button
button.size = CGSize(width: 6, height: 6)
button.anchorPoint = CGPoint(x: -13.3, y: -0.5)
button.zPosition = 0
overlayScene.addChild(button)
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
print(NSDate())
// let touch = touches.first!
// let location = touch.location(in: overlayScene)
}
override var prefersStatusBarHidden : Bool { return true }
}
Any help is greatly appreciated!
Thanks!
EDIT: changed screenView.overlaySKScene!.isUserInteractionEnabled = false
Now touches are detected!