2017-08-14 8 views
0

コードの最後の行でエラーが発生します。エラー:シーンからシーンのルートノードを削除できません

- (SCNScene *)getWorkingScene { 
    SCNScene *workingSceneView = self.scene; 

    if (workingSceneView == nil){ 
     workingSceneView = [[SCNScene alloc] init]; 
     workingSceneView.background.contents = self.skyColor; 
     self.scene = workingSceneView; 
     self.allowsCameraControl = TRUE; 
     self.autoenablesDefaultLighting = TRUE; 
     self.showsStatistics = TRUE; 
     self.backgroundColor = self.skyColor; 
     self.delegate = self; 
    } 

    return workingSceneView; 
} 

DPoint *point = [coodinate convertCooridnateTo3DPoint]; 
NSURL *pathToResource = [NSURL urlWithObjectName:objectName ofType:@"dae"]; 
NSError *error; 
SCNScene *scene = [SCNScene sceneWithURL:pathToResource options:nil error:&error]; 
SCNNode *node = scene.rootNode; 
node.position = SCNVector3Make(point.x, point.y, point.z); 
node.rotation = SCNVector4Make(0, 1, 0, ((M_PI*point.y)/180.0)); 
SCNScene *workingScene = self.getWorkingScene; 
[workingScene.rootNode addChildNode:node]; 

答えて

2

ノードは1つのシーンにのみ属し、ビューは1つの親ビューしか持つことができません。

[workingScene.rootNode addChildNode:node];に電話すると、nodeが現在のシーン(scene)から別のシーン(workingScene)に移動しています。しかし、nodesceneのルートノードです。シーンのルートノードを削除することはできません。そのため、エラーです。

解決策の1つは、nodeのすべての子ノードをworkingScene.rootNodeに移動することです。

関連する問題