相对较新的ARKit,我想知道是否有一种方法可以在将3D对象放入场景后将其移除。
答案 0 :(得分:3)
只需使用此功能:
夫特:
node.removeFromParentNode()
目标-C
[node removeFromParentNode];
答案 1 :(得分:0)
如果您不希望它出现在屏幕上,则需要从场景图中删除节点。您需要将其从其父节点中删除。在Apples文档中的SCNNode - Managing the Node Hierachy中了解更多相关信息。
答案 2 :(得分:0)
要从“场景”视图中删除对象(SCNNode),可以使用长按手势。只需在 viewDidLoad 中添加以下代码即可。
UILongPressGestureRecognizer *longPressGestureRecognizer =
[[UILongPressGestureRecognizer alloc] initWithTarget:self
action:@selector(handleRemoveObjectFrom:)];
longPressGestureRecognizer.minimumPressDuration = 0.5;
[self.sceneView addGestureRecognizer:longPressGestureRecognizer];
然后处理您的手势识别器方法,如下所示
- (void)handleRemoveObjectFrom: (UILongPressGestureRecognizer *)recognizer {
if (recognizer.state != UIGestureRecognizerStateBegan) {
return;
}
CGPoint holdPoint = [recognizer locationInView:self.sceneView];
NSArray<SCNHitTestResult *> *result = [self.sceneView hitTest:holdPoint
options:@{SCNHitTestBoundingBoxOnlyKey: @YES, SCNHitTestFirstFoundOnlyKey: @YES}];
if (result.count == 0) {
return;
}
SCNHitTestResult * hitResult = [result firstObject];
[[hitResult.node parentNode] removeFromParentNode];
}
希望这可以帮助您解决问题。
由于