Я знаю, что можно создать настраиваемые анимационные свойства в Core Animation, но как насчет в OS X 10.8 SceneKit framework? SCNAnimatable
, похоже, не показывает те же API, что CALayer
делает для анимации свойств.
В моем приложении у меня есть подкласс SCNNode
под названием Starfield
, который я портировал из старого приложения OpenGL с помощью SCNNodeRendererDelegate
. Starfields выставляют свойство GLfloat
, называемое warpFactor
:
@interface Starfield : SCNNode<SCNNodeRendererDelegate> {
// other stuff that 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 совершенно новый, но кто-нибудь знает, как это сделать?