RealityKit中连续执行两个FromToByAction无法叠加变换的问题咨询
RealityKit中连续执行两个FromToByAction无法叠加变换的问题咨询
大家好,我在使用RealityKit实现缩放动画时遇到了一个不符合预期的问题,想跟各位请教一下:
我写了这样一段代码:
let scaleAction = FromToByAction( by: Transform(scale: SIMD3(2, 2, 2))) let scaleAnimation = try! AnimationResource .makeActionAnimation( for: scaleAction, duration: 2, bindTarget: .transform) box.playAnimation(try! .sequence(with: [scaleAnimation, scaleAnimation]))
按照我以往在SceneKit和SpriteKit里的经验,我预期这个盒子会先从1倍缩放至2倍(第一个动画),接着从2倍继续缩放至4倍(第二个动画)——也就是每次动画都基于当前的状态叠加相对变换。
但实际在RealityKit里运行的结果却是:盒子先从1倍缩到2倍,然后突然跳回1倍,再重新缩到2倍。
我注意到AnimationResource是一个结构体,所以[scaleAnimation, scaleAnimation]其实是两个独立的副本,按道理应该不会互相影响才对。另外我不想手动计算“from”和“to”的值,因为“by”这种相对变换的方式在很多场景下(包括我上面的示例场景)都更方便。
有没有朋友知道这是怎么回事,或者有没有办法让RealityKit里的相对动画能像SceneKit/SpriteKit那样连续叠加执行呢?
内容来源于stack exchange




