我知道可以创建
custom animatable properties in Core Animation,但是在OS X 10.8的SceneKit框架中呢? SCNAnimatable似乎没有暴露出CALayer使属性具有动画效果的相同API.
在我的应用程序中,我有一个名为Starfield的SCNNode子类,我从一个旧的OpenGL应用程序通过使用SCNNodeRendererDelegate移植. Starfields公开了一个名为warpFactor的GLfloat属性:
@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是全新的,但有人碰巧知道如何使这项工作吗?