首页 > 解决方案 > 如何在 Scenekit 中为关键帧动画选择关键路径?

问题描述

我正在尝试使用 CAKeyFrame 在 SCNIKConstraint 中为 targetPosition 设置动画,但在设置动画时无法确定要使用的键路径。

两个问题:

  1. 可以使用 keyFrame 为 targetPosition 设置动画吗?
  2. 一般来说,我在哪里/如何找到 SceneKit 动画属性的关键路径

标签: scenekit

解决方案


任何符合的类型的属性都SCNAnimatable可以进行动画处理。这是SCNIKConstraint继承自SCNConstraint符合它的情况。

然后,您可以通过指定它们的路径来为属性设置动画。

在您的情况下,您将执行以下操作:

let constraint = SCNIKConstraint(...)
let animation = CAKeyframeAnimation(keyPath: "targetPosition")
/// Configure the animation
...
constraint.addAnimation(animation, forKey:nil)

请注意为动画设置与要设置动画的属性兼容的值。

注意:您可以指定属性或派生属性及其路径,您可以通过value(forKeyPath: String). NSObject例如,您可以这样做:

 let animation = CAKeyframeAnimation(keyPath: "targetPosition.x")

推荐阅读