SceneKit SCNAnimationPlayer混合停止导致可见抖动

时间:2018-06-13 03:29:22

标签: ios swift animation scenekit scnnode

我目前正在使用两个SCNAnimations。一个是idle,另一个是running。它们都是无限循环的。

我总是运行空闲动画,然后为已经添加到模型中的后续运行动画启动动画播放器 - 动画运行得很好,甚至可以通过以下方式进行混合:

let player = animationPlayer(forKey: "running")
player?.animation.blendInDuration = 0.25
player?.play()

我遇到的问题是停止正在运行的动画以返回空闲状态。当在播放器上运行stop()时,更改会立即按预期发生,但是当为停止调用提供blendOutDuration时,会有很大的抖动返回到空闲动画。

我的代码外观的简化示例如下:

func startRunningAnimation() {
    animationPlayer(forKey: "running")?.play()
}

func stopRunningAnimation(blendOutDuration: TimeInterval) {
    guard let player = animationPlayer(forKey: "running") else {
        return 
    }
    player.stop(withBlendOutDuration: blendOutDuration)
}

任何人都可以通过iOS 11的SCNAnimationPlayer体验这一点吗?

0 个答案:

没有答案