【一】位置移动
1、移动操作
a、移动相对位置
+ (SCNAction *)moveByX:(CGFloat)deltaX y:(CGFloat)deltaY z:(CGFloat)deltaZ duration:(NSTimeInterval)duration;
+ (SCNAction *)moveBy:(SCNVector3)delta duration:(NSTimeInterval)duration;
b、移动指定位置
+ (SCNAction *)moveTo:(SCNVector3)location duration:(NSTimeInterval)duration;
2.旋转操作
a旋转相对于当前位置
+ (SCNAction *)rotateByX:(CGFloat)xAngle y:(CGFloat)yAngle z:(CGFloat)zAngle duration:(NSTimeInterval)duration;
+ (SCNAction *)rotateByAngle:(CGFloat)angle aroundAxis:(SCNVector3)axis duration:(NSTimeInterval)duration;
b旋转指定位置
+ (SCNAction *)rotateToX:(CGFloat)xAngle y:(CGFloat)yAngle z:(CGFloat)zAngle duration:(NSTimeInterval)duration;
+ (SCNAction *)rotateToX:(CGFloat)xAngle y:(CGFloat)yAngle z:(CGFloat)zAngle duration:(NSTimeInterval)duration shortestUnitArc:(BOOL)shortestUnitArc;
+ (SCNAction *)rotateToAxisAngle:(SCNVector4)axisAngle duration:(NSTimeInterval)duration;
3.缩小放大
a缩小放大相对位置
+ (SCNAction *)scaleBy:(CGFloat)scale duration:(NSTimeInterval)sec;
b缩小放大指定位置
+ (SCNAction *)scaleTo:(CGFloat)scale duration:(NSTimeInterval)sec;
4.多个动画按照顺序执行
+ (SCNAction *)sequence:(NSArray *)actions;
5.多个动画按照一起执行
6.执行次数
+ (SCNAction *)repeatAction:(SCNAction *)action count:(NSUInteger)count;
7.一直执行
+ (SCNAction *)repeatActionForever:(SCNAction *)action;
8.消失出现
//默认node.opacity为1.0
a出现
+ (SCNAction *)fadeInWithDuration:(NSTimeInterval)sec;
b消失
+ (SCNAction *)fadeOutWithDuration:(NSTimeInterval)sec;
9.等待几秒后执行
+ (SCNAction *)waitForDuration:(NSTimeInterval)sec;
等待几秒到几秒之间执行
+ (SCNAction *)waitForDuration:(NSTimeInterval)sec withRange:(NSTimeInterval)durationRange;
10.移除node
+ (SCNAction *)removeFromParentNode;
11.执行动画
+ (SCNAction *)runBlock:(void (^)(SCNNode *node))block;
+ (SCNAction *)runBlock:(void (^)(SCNNode *node))block queue:(dispatch_queue_t)queue;
网友评论