web-dev-qa-db-ja.com

シーンキットシーンからすべてのノードを削除するにはどうすればよいですか?

こんにちは私は私のScenekitシーンからすべてのノードを削除しようとしていますが、私は私の人生のために方法を理解することはできません。

これを自動で行う機能が必要なのは当たり前のようですが見つかりません。

コンテキストでは、シーンをリセットできるようにすべてのノードを削除しようとしています。これはかなり頻繁に発生します。多分これを行う別の方法があり、私はそれで大丈夫です、私はすべてのノードを削除する必要があることに行き詰まりません。

ありがとう!

16
Tim Andrews

これを試してください(Swiftを使用していると想定しています)。

rootNode.enumerateChildNodes { (node, stop) in
        node.removeFromParentNode()
    }

私のために働く。

31
Alan

私にとっては以下のように働きました:

sceneView.scene.rootNode.enumerateChildNodes { (node, stop) in
node.removeFromParentNode() }
10

新しいシーンを作成するか、-[SCNNode removeFromParentNode]シーンのすべての子ノードrootNode

3
mnuages

すべてのノードを削除する必要がある場合は、これを呼び出します(シーンがselfでない場合は、変更してください)。

for (SCNNode *node in [self children]) {
    [node removeFromParent]
}

さらに、各ノードを削除する必要がある場合一部を除くを呼び出します(たとえば、3つのノードを削除する必要はなく、それらの名前はab、およびc

for (SCNNode *node in [self children]) {
    if (![node.name isEqualToString:@"a"] && ![node.name isEqualToString:@"b"] && ![node.name isEqualToString:@"c"]) {
        [node removeFromParent]
    }
}

お役に立てれば!

3
DDPWNAGE