私は混乱する状況があります。まず、ここでのコードは次のとおりです。上記のUIView SKScene - タッチを常にシーンに通しているのはなぜですか?
class MyView: SKView {
...
public override func awakeFromNib() {
super.awakeFromNib()
let gameScene = MyGameScene(...)
// ...
presentScene(gameScene)
let view = UIView()
view.frame = bounds
view.isUserInteractionEnabled = true
addSubview(view)
}
...
}
class MyGameScene: SKScene {
...
public override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
print("touch received")
}
...
}
私はSKScene
を提示していますSKView
を持っています。それを提示した後、私は画面いっぱいのUIView
を追加します。しかし、私がアプリを起動して画面をタップすると、「touch received」という文字が表示されます。これは、タッチがシーンに届いたことを意味します。view
の背後にある必要があります。何故ですか?
どうすれば防止できますか?
また、ジェスチャ認識機能をビューに追加しようとしました。ただし、問題を防ぐことはできません(cancelsTouchesInView
をtrueに設定しても)
ありがとうございました。
GameScene SKViewが –
のタッチを受け付けないようにするために 'view.isUserInteractionEnabled = false'を試してください。それは' isUserInteractionEnabled'が存在することです。私は触れることを受け入れるようにしたい。そしてこれを 'MyGameScene'で無効にすることを意味するならば、それはオプションではありません。 'SKView'はタッチを受け取り、シーンにリダイレクトしないでください – Quantm
' presentSene() ' – murphguy