我需要访问SKSpriteNode
的子节点。
在iOS 9.1中我曾经这样做过:
let node = nodeAtPoint(touchLocation)
If let myNode = node as? MyNode {
//some code if node is kind of class
它工作得很好,但在iOS 9.2中却没有。谁知道是什么事?
答案 0 :(得分:0)
要访问SKNode的孩子,请访问只读的“孩子”。参数(见SKNode children)。
我怀疑iOS 9.1到9.2的改变是误导性的。 nodeAtPoint只会返回一个子节点,如果它也发生在该点,而不管它的子类。如果存在多个节点,则选择“最便宜的”节点。然后是最大的z' (如果它们都具有相同的z,则返回它可能是任意的)。如果此时没有节点,则返回接收器。所以它返回的内容是高度可变的,具体取决于你被调用的瞬间场景 - 所以当它从未真正按照你的想法行事时它似乎可能正常工作?