2015-01-07 2 views
0

Я пытаюсь сказать узел, чтобы повернуть так:Узел поворота SceneKit дважды выполняет только последний поворот?

node.rotation = SCNVector4Make(0, 1, 0, -Float(M_PI)) 
    node.rotation.rotation = SCNVector4Make(1, 0, 0, -Float(M_PI_2/2.9)) 

Я не понимаю, почему только вращение, которое работает является последним. Похоже, что первое вращение ничего не делает.

Как я могу вращать узел на определенный угол по оси Y, а затем другой угол по оси x? Что мне здесь не хватает?

Спасибо

ответ

1

Вы не добавляя к повороту, вы присваиваете новое значение, заменяя предыдущее значение.

Я думаю, что свойство, которое подойдет вам лучше, это eulerAngles. Это ориентация, выраженная как roll, yaw, and pitch углов. Обратите внимание, что назначение нового вектора все еще заменяет предыдущее значение. Также обратите внимание, что порядок - это roll, yaw и pitch, несмотря на то, что компоненты вектора называются x, y, z. Это означает, что node.eulerAngles.x изменяет вращение узла вокруг его z-axis.

+0

имеет смысл. Я попробую это и отчитаю. – zumzum

+0

Извините, но потребовалось много времени, чтобы отметить его как правильную. Я хотел проверить его в проекте, который занимал меня дольше, чем я думал. Благодаря! – zumzum