我知道可以在 Core Animation 中创建自定义动画属性,但是在 OS X 10.8 的 SceneKit 框架中呢? SCNAnimatable
似乎没有公开CALayer
用于使属性可动画化的相同 API。
在我的应用程序中,我有一个SCNNode
名为 的子类Starfield
,我使用SCNNodeRendererDelegate
. Starfields 公开了一个GLfloat
名为warpFactor
:
@interface Starfield : SCNNode<SCNNodeRendererDelegate> {
// other stuff that's not really important for this question
GLfloat warpFactor;
}
@property(nonatomic) GLfloat warpFactor;
@end
但是当我尝试向它添加动画时,如下所示:
CABasicAnimation *warp = [CABasicAnimation animationWithKeyPath:@"warpFactor"];
warp.toValue = @1.0;
warp.duration = 5.0;
[starfield addAnimation:warp forKey:@"warp"];
我在控制台中得到以下信息:
[SCNKit ERROR] warpFactor is not an animatable path (from <unnamed SCNNode 0x1016473c0, no children>)
我知道 SceneKit 是全新的,但有没有人碰巧知道如何使它工作?