Проблема с вращением объекта в SceneKit

swift
ios
swift3

#1

При клике на кнопку поворачиваю объект. Проблема - объект поворачивается только при первом клике.

> func buttonAction(sender: UIButton!) {
>         let btnsendtag: UIButton = sender
>         if btnsendtag.tag == 1 {
>             cubes.boxOne.runAction(SCNAction.rotateTo(x: 0.0, y: 90, z: 0.0, duration: 0.5))
>         }
>     }

#2

Вообще хрень полная… оказывается, вращает не в градусах, а в радианах. И работает все косо и криво. Может у кого был опыт во вращении объектов?


#3

Последнее время сам задаю вопросы и сам на них отвечаю. Такое чувство, что сообщество меня тупо игнорит за что-то… ). Как перевести градусы в радианы и повернуть объект на нужный угол - разобрался. Но проблема работы метода только при первом клике - осталась.

Вот предварительное решение:

let angle = SCNVector4(0, 1, 0, 45*(Double.pi/180))
    
    func buttonAction(sender: UIButton!) {
        let btnsendtag: UIButton = sender
        if btnsendtag.tag == 1 {
            cubes.boxOne.runAction(SCNAction.rotate(toAxisAngle: angle, duration: 1))
        }
    }

Значения SCNVector4 в скобках:
1,2 и 3 - задаем поворот по нужной оси
Последнее значение - угол