SCNAction.rotateTo เริ่มหมุนเมื่อเขียนโดยทางโปรแกรมโดยใช้ ARKit - Scenekit

ฉันใช้ ARKit - Scenekit เพื่อสร้างแอปที่ใช้ AR ฉันสามารถวางโมเดล 3 มิติได้สำเร็จ เมื่อผู้ใช้แตะ ฉันกำลังพยายามหมุนโหนดใดโหนดหนึ่งโดย -120 องศาโดยใช้วิธี rotTo สิ่งนี้น่าจะทำให้แอนิเมชั่นหมุนได้อย่างราบรื่น แต่โหนดกลับหมุนรอบวัตถุอย่างรวดเร็วและสิ้นสุดที่ -120 องศาแทน เมื่อฉันพยายามทำแบบเดียวกันโดยตรงในโปรแกรมแก้ไขฉากโดยการลากและวางแล้วหมุนไปเป็นการกระทำ มันก็ใช้ได้ดี เฉพาะเมื่อฉันพยายามทำสิ่งนี้โดยทางโปรแกรมเท่านั้น มันเริ่มหมุนเร็วมากและฉันไม่สามารถดูตัวอย่างการหมุนได้

ด้านล่างนี้เป็นโค้ดที่ฉันใช้เพื่อหมุนโหนด

 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) ใครกรุณาแจ้งให้เราทราบว่าปัญหาคืออะไรที่นี่?


person yaali    schedule 06.12.2017    source แหล่งที่มา


คำตอบ (1)


เครื่องมือแก้ไข Scenekit ใช้องศา แต่ SCNAction.rotateTo คาดว่ามุมจะเป็นเรเดียน

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