문제 설명
Spritekit이 부모를 변경하면 노드가 사라집니다. (Spritekit changing parent makes the node disappear)
중앙에 노드(큰 사각형)가 있는 SKScene이 있습니다. 다른 노드가 있고 그 상위 노드를 장면 대신 mySquare로 변경하고 싶습니다.
myNode.moveToParent(mySquare)
를 사용해 보았습니다. 노드 트리의 mySquare
아래에서 내 노드를 찾을 수 있으므로 작동하는 것 같습니다(for node in mySquare.children
올바른 노드 인쇄). 제 문제는 그 노드가 더 이상 보이지 않는다는 것입니다...
노드가 잘못된 위치를 가질 수 있는지 궁금해서 node.position = mySquare.convertPoint( node.position, fromNode: self)
. moveToParent 전에 노드의 위치를 임시 변수에 넣고 대신 이 위치를 변환하려고 시도했지만 작동하지 않았습니다. 그런 다음 mySquare의 앵커 포인트인 node.position = CGPoint(x: 0.5, y: 0.5)
를 사용하여 간단히 mySquare의 중심에 노드를 배치하려고 시도했지만 노드는 여전히 사라졌습니다.
나는 스파크가 있는 노드에 SKEmitter를 넣어 위치를 테스트했습니다. 스파크는 노드의 부모가 Scene일 때 노드가 있었던 바로 그 위치에 있습니다. 즉, 올바른 위치에 있습니다. 하지만 노드가 없습니다.
이 문제를 해결하는 방법에 대한 아이디어가 있습니까?
시간 내주셔서 대단히 감사합니다.
추가 정보
제 노드 생성 방법입니다.
let object = SKSpriteNode(imageNamed: "myObject")
self.addChild(copy() as! SKSpriteNote)
터치에 맞게 위치를 설정했습니다(mySquare 내부를 터치할 때 생성).
참조 솔루션
방법 1:
Check the zPosition of your Node. Maybe it is hidden behind another element.
(by David Gourde、Stefan)