2017-12-06 10 views
0

AR 기반 응용 프로그램을 만들 때 ARKit-Scenekit을 사용하고 있습니다. 3D 모델을 성공적으로 배치 할 수 있습니다. 사용자 탭에서 rotateTo 메서드를 사용하여 특정 노드를 -120도 회전하려고합니다. 이상적으로 부드러운 회전 애니메이션이 발생해야합니다. 그러나 그 대신에 노드는 물체 주위를 매우 빠르게 회전하고 마침내 -120도에서 끝납니다. 내가 장면 편집기에서 drag-dropping action을 사용하여 똑같은 동작을 시도하면 동작이 잘됩니다. 프로그래밍 방식으로이 작업을 수행하려고 할 때만 회전 속도가 빨라지고 회전을 미리 볼 수도조차 없습니다. 다음은 SCNAction.rotateTo는 ARKit을 사용하여 프로그래밍 방식으로 작성 될 때 회전을 시작합니다. - Scenekit

내가 노드를 회전 사용하고있는 코드, 노드의

let rotateAction = SCNAction.rotateTo(x: 0, y: 0, z: -120, duration: 2) 
self.virtualObjectManager.lastUsedObject?.childNodes[0].childNodes[0].childNodes[0].runAction(rotateAction, completionHandler: { 
      }) 

초기 각도가 (0, 0, 0)입니다. 나는 그것을 (0,0, -120)으로 바꾸려고합니다. 어떤 사람이 나에게이 문제가 무엇인지 알려주시겠습니까?

답변

2

장면 킷 편집기는 각도를 사용하지만, 각도는 라디안 단위로 나타납니다. SCNAction.rotateTo.

let angle = CGFloat(-120.0 * .pi/180) 
let rotateAction = SCNAction.rotateTo(x: 0, y: 0, z: angle, duration: 2)