我有一个三维球模型保存为一个dae文件,并加载到xcode。
问题是我不能让它旋转-它只是保持静止.我试过几种方法,甚至试着让摄像机绕着它转。
SCNScene *model = [SCNScene sceneNamed:@"model3.dae"];
SK3DNode *node = [[SK3DNode alloc] initWithViewportSize:CGSizeMake(50, 50)];
//workaround
id s1 = [node valueForKey:@"_scnRenderer"];
NSLog(@"%@", s1);
node.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:node.frame.size.width/2];
node.physicsBody.affectedByGravity = NO;
node.physicsBody.allowsRotation = YES;
node.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
[node setScnScene:model];
//THIS IS THE PART! I cannot get it to spin around
CABasicAnimation *rotationAnimation = [CABasicAnimation animationWithKeyPath:@"rotation"];
rotationAnimation.toValue = [NSValue valueWithSCNVector4:SCNVector4Make(1, 2, 3, M_PI * 2)];
rotationAnimation.duration = 1;
rotationAnimation.repeatCount = FLT_MAX;
[model.rootNode addAnimation:rotationAnimation forKey:nil];
//camera
SCNCamera *camera = [SCNCamera camera];
camera.xFov = 0;
camera.yFov = 0;
camera.zNear = 0.0;
camera.zFar = 10.0;
SCNNode *cameraNode = [SCNNode node];
cameraNode.camera = camera;
cameraNode.position = SCNVector3Make(0, 0, 5);
[model.rootNode addChildNode:cameraNode];
node.pointOfView = cameraNode;
[world addChild:node];有什么想法吗?基本上,我想让3D模型在SK3DNode中移动。希望这是有意义的。想想旋转的行星。
谢谢你,亚历克斯
发布于 2015-09-01 23:19:24
修改场景根节点的转换(例如,通过添加动画)没有效果,因为摄像机是由该根节点的子节点持有的。球体和摄像机之间的相对变换保持不变。您应该将动画添加到摄像机节点或球面节点。
https://stackoverflow.com/questions/32342106
复制相似问题