您可以使用的一种方法是为要添加的每个节点创建一个全局变量,例如:
var labelNode: SCNNode?
var allLabelNode: SCNNode?
var fruitNode: SCNNode?
然后你可以进行一个测试,看看它们是否正确
nil
. 如果节点是
无
,然后创建,否则删除,例如:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
guard let currentTouchLocation = touches.first?.location(in: self. self.sceneView),
let hitTestNode = self.sceneView.hitTest(currentTouchLocation, options: nil).first?.node
else { return }
switch hitTestNode.name {
case "lableNode":
if labelNode == nil{
}else{
labelNode?.removeFromParentNode()
labelNode = nil
}
case "AllLabelNode":
if allLabelNode == nil{
}else{
allLabelNode?.removeFromParentNode()
allLabelNode = nil
}
case "fruitNode":
if fruitNode == nil{
}else{
fruitNode?.removeFromParentNode()
fruitNode = nil
}
default:
return
}
}