Как масштабировать 3D объект вертикально (вдоль оси Y) в Swift? - PullRequest
0 голосов
/ 22 декабря 2018

Я создал дверь с помощью ARKit, и я хочу создать масштабную анимацию.Моя цель - масштабировать его только вдоль оси Y (вытянуть дверь, чтобы она была длиннее).Я хочу, чтобы дверь росла в течение 1 секунды.

Мой подход состоял в том, чтобы просто масштабировать ее, но у меня есть только варианты, позволяющие мне масштабировать весь мой объект по всем 3 осям.

Затем я попробовал node.scale = SCNVector3(0, 2, 0), и это работает нормально, но у него нет хорошей анимации.Когда я создаю SCNAction() и запускаю код как блок с продолжительностью времени, он все равно просто меняет размер без плавной анимации.

1 Ответ

0 голосов
/ 22 декабря 2018

Вам нужно использовать SCNTransaction.Самый простой способ анимировать масштабирование вашего узла будет выглядеть примерно так:

SCNTransaction.begin()
SCNTransaction.animationDuration = 3
node.scale = SCNVector3(0, 2, 0)
SCNTransaction.commit() 

Вам также может понадобиться изменить свойство pivot узла, чтобы правильно расположить анимацию.

...