2017-12-26 28 views
1

私はSceneViewを使ってCreat Cubesを持っていて、タップアクションでキューブを消したがっています。どのように達成することができますか?ここでSCNNodeをタップするとSCNNodeを削除するには?

キューブ

 SCNBox *Box = [SCNBox boxWithWidth:2.0 height:2.0 length:2.0 
    chamferRadius:Radius]; 


    Box.firstMaterial.diffuse.contents = [UIColor whiteColor]; 
    SCNNode *cubeNode = [SCNNode nodeWithGeometry:Box]; 
    [ArrBoxNode addObject:cubeNode]; 

    self.sceneView.backgroundColor = [UIColor redColor]; 
    self.view.backgroundColor = [UIColor grayColor]; 

    cubeNode.position = SCNVector3Make(4,0,0); 

    [scene.rootNode addChildNode:cubeNode]; 
    self.sceneView.scene = scene; 
    [self.sceneView sizeToFit]; 




- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
    { 
     UITouch *touch = [touches anyObject]; 
     CGPoint touchPoint = [touch locationInView:self.sceneView]; 
     SCNHitTestResult *hitTestResult = [[self.sceneView 
     hitTest:touchPoint options:nil] firstObject]; 
     SCNNode *hitNode = hitTestResult.node; 

     for (SCNNode *node in ArrBoxNode) { 
     [node removeFromParentNode]; 
    } 
} 

を作成するための私のコードですが、私はタップアクションからノードを削除することはできませんよ。あなたは...私を助け、より良い提案を与える、あなたに感謝してくださいすることができます:)

+1

を使用して触れているノードを削除する必要があります私は –

+0

を知っておいてください。新しいキューブを追加しても機能しない場合は、 –

+0

最初にそのオブジェクトに触れているかどうかを確認してください。削除する必要があるオブジェクトに触れる必要があります。私が知っている –

答えて

1

あなたは `[hitNodeてみてください[hitNode removeFromParentNode];

コード

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
    { 
    UITouch *touch = [touches anyObject]; 
    CGPoint touchPoint = [touch locationInView:self.sceneView]; 
    SCNHitTestResult *hitTestResult = [[self.sceneView hitTest:touchPoint options:nil] firstObject]; 
    SCNNode *hitNode = hitTestResult.node; 
    [hitNode removeFromParentNode]; 
} 
関連する問題