Scenekit手势识别器和overlaySKScene触摸

时间:2018-07-23 16:47:09

标签: ios swift scenekit

目前正在快速开发带有场景套件的游戏。我在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)

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题...您必须将 touchesBegan 替换为 TapGesture ,或将 UILongPressGestureRecognizer 替换为 touchesEnded ,但更确切地说是第一个选项。