【发布时间】:2018-12-31 04:40:57
【问题描述】:
目前正在 swift 中使用场景工具包开发游戏。我在SKScene 中添加了一个操纵杆,然后将其附加到我的场景工具包游戏场景中。用于控件的典型 HUD 叠加层。
let hudScene = SKScene(size: view.frame.size)
scnView.overlaySKScene = hudScene
我还为hudScene 添加了一个操纵杆,并想添加一些按钮。现在,在我将手势识别器添加到我的主游戏场景之前,所有这些都可以正常工作。一旦我这样做了,与hudScene 的所有点击交互都会被完全忽略。即使我点击操纵杆并记录在该位置点击了哪个节点,它也会为我提供游戏场景中的节点并完全忽略hudScene 中的节点。
谁能提供任何关于为什么会发生这种情况的见解?
作为参考,操纵杆的触摸事件是从this library实现的,我的手势识别器是这样实现的:
let touchDownRec = UILongPressGestureRecognizer(target: self, action: #selector(didTouchDown(_:)) )
touchDownRec.minimumPressDuration = 0
touchDownRec.numberOfTouchesRequired = 1
scnView.addGestureRecognizer(touchDownRec)
【问题讨论】:
-
玩了一段时间后,如果我在我的游戏场景中实现另一组
touchesBegan、touchesMoved等,则操纵杆和场景触摸都会重新调整。因此,当我使用UILongPressGestureRecognizer时,它看起来会覆盖操纵杆的touchesBegan、touchesMoved等。