[5편] 팬/핀치 제스처로 오브젝트 이동/확대하기 & 정리

웰디(Well-D)·2025년 4월 14일
0
post-thumbnail

🍰 다섯번째 코드조각

두번째 제스쳐인 팬 제스쳐 코드입니다. 마찬가지로 최상단 노드를 찾아 selectedNode로 설정하는 것은 같으나 오브젝트 전체를 드래그 즉 팬제스쳐를 통해 이동시키기 위해서는 최상단 노드를 찾는것으로 충분하기 때문에 추가로 자식노드를 찾는과정은 없습니다. 최상단 노드 , 즉 컨트롤 하기위해 필요한 노드를 찾았다면 팬제스쳐가 시작될때의 위치를 originalNodePosition 변수에서 저장해두었다가, 팬제스쳐가 실행, 즉 changed될때 sceneView에서 제스쳐가 변화된 만큼을 originalNodePosition기준으로 적절하게 계산하여 새로운 위치로 조정해줍니다. 여기서는 0.05를 곱하였고 z 축의 경우에는 따로 2D 좌표계인 제스쳐에서는 계산이 불가하여 적절한 위치로 보이도록 기존 z 축 위치에 y축 변화량을 계산해주는 방식으로 보완하였습니다.

제스처가 끝나는 ended 와 cancelled 의 경우에는 노드와 포지션의 값을 nil로 초기화 시켜줍니다.

profile
Wellness 잘사는 것에 진심인 웰디입니다. 여러분의 몸과 마음, 통장의 건강을 수호하고싶어요. 느리더라도, 꾸준히

0개의 댓글