私はSpriteKitゲームを構築しています。ゲームシーンは、その上にある透明なレイヤーの親です。このレイヤーは、時折のメッセージをプレイヤーに表示する役割を果たします。私はこの層を透明で不活性なものにしたいと思っています。もちろん、タッチは決して受けません。そのため、私はisUserInteractionEnabledをfalseに設定しました。しかし、後でこれをシーンに追加すると、その下のすべてのタッチがブロックされます。何がありますか?SpriteKit isUserInteractionEnabled = falseブロックのタッチ
編集:MessageLayerの親はゲームシーンであり、ゲームシーンもisUserInteractionEnabled = falseであるため、MessageLayerがその動作を継承しているとは思われません。
import Foundation
import SpriteKit
class MessageLayer: SKSpriteNode {
init() {
let size = CGSize(width: screenWidth, height: screenHeight)
super.init(texture: nil, color: UIColor.blue, size: size)
self.isUserInteractionEnabled = false
self.name = "MessageLayer"
alpha = 0.6
zPosition = +200
}
override init(texture: SKTexture!, color: UIColor, size: CGSize)
{
super.init(texture: texture, color: color, size: size)
}
required init(coder aDecoder: NSCoder) {
super.init(texture: nil, color: UIColor.clear, size: CGSize(width: 100, height: 100))
}
// MARK: - Functions
func alphaUp() {
alpha = 0.6
}
func alphaDown() {
alpha = 0.0
}
}
あなたのゲームシーンもfalseに設定されている場合、あなたはタッチを受信している何を期待していますか? – Knight0fDragon
@ Knight0fDragonシーンをfalseに設定すると、他のオブジェクトはまだタッチを受け取ります。これらはビューレイヤーで処理されます。彼らは、カスタム分類されている場合にのみ – Fluidity
@Fluidityは、それは私がKnight0fDragon @私の質問 – Knight0fDragon