Код: Выделить всё
let box = ModelEntity(mesh: .generateBox(size: 0.1))
anchor.addChild(box)
box.position = SIMD3(0.1, 0.2, 0.3)
let rotationAction = FromToByAction(by: Transform(pitch: 10, yaw: 20, roll: 30), isAdditive: false)
let rotationAnimation = try! AnimationResource.makeActionAnimation(for: rotationAction, duration: 3, bindTarget: .transform)
let translationAction = FromToByAction(by: Transform(translation: SIMD3(0.1, 0, 0)), isAdditive: false)
let translationAnimation = try! AnimationResource.makeActionAnimation(for: translationAction, duration: 6, bindTarget: .transform)
box.playAnimation(try! .group(with: [rotationAnimation, translationAnimation]))
Затем через 3 секунды действие вращения заканчивается, и блок внезапно «перепрыгивает» в нужное положение (как если бы вращения не произошло) и продолжает движение по прямой.
Похоже, что вращение и перемещение мешают друг другу, поскольку они оба связаны с преобразованием, которое является единственным свойством объекта Entity.
Я попробовал переключить isAdditive и тот же результат (не совсем уверен, что делает isAdditive).
Интересно, как я могу убедиться, что они работают вместе, не мешая друг другу, как в SpriteKit или SceneKit? (то есть ящик вращается сам по себе, но все равно движется по прямой; затем через 3 секунды он просто продолжает движение по прямой, не прыгая.
Подробнее здесь: https://stackoverflow.com/questions/797 ... h-each-oth
Мобильная версия