Установка userInteractionEnabled=true/false на оверлейном SKScene не имеет никакого эффекта
У меня есть представление SceneKit так:
mySCNKitView.scene = a SCNScene
mySCNKitView.overlaySKScene = a SKScene
Теперь, если я установлю userInteractionEnabled
собственность на overlaySKScene
, это не имеет никакого эффекта, то есть он всегда включен, и поэтому я не могу отключить взаимодействие с пользователем для overlaySKScene
!? Все добавленные дочерние SKNode в overlaySKScene
будет по-прежнему получать взаимодействие с пользователем...
т.е. это не имеет никакого эффекта, оно всегда включено
mySCNKitView.overlaySKScene?.userInteractionEnabled = true / false
Я не знаю, так ли это должно быть? Но, похоже, именно так следует отключить взаимодействие с пользователем для overlaySKScene
...?
2 ответа
Вы когда-нибудь решали это? Я столкнулся с подобной проблемой, а затем, наконец, заставил ее работать со следующими:
let scnView = self.view as! SCNView
let scene = SCNScene()
var spriteScene: OverlayScene!
self.spriteScene = OverlayScene(size: self.view.bounds.size)
scnView.overlaySKScene = self.spriteScene
scnView.overlaySKScene?.userInteractionEnabled = false
С помощью приведенного выше кода вся моя сцена наложения игнорируется, события принимаются сценой SceneKit по желанию. Это в бета-версии Xcode 7.3, цели развертывания tvOS 9.1, так что, может быть, это то, что Apple недавно изменила?
Отношения Apple с разработчиками20-Jan-2016 20:20
Эта проблема ведет себя как задумано, основываясь на следующем:
Это ожидаемое поведение "userInteractionEnabled" в SpriteKit (которое отличается от UIKit). Вы должны установить для userInteractionEnabled значение false для всех узлов (не только для узла SKScene), в противном случае любой узел с userInteractionEnabled=true будет перехватывать событие. Обратите внимание, что для userInteractionEnabled в SKNode по умолчанию используется значение NO (ожидается SKScene).
Сейчас мы закрываем этот отчет об ошибках.
Если у вас есть вопросы по поводу разрешения, или если это все еще является критической проблемой для вас, пожалуйста, обновите ваш отчет об ошибке с этой информацией.