2017-10-04 86 views
0

我需要你的帮助。如何删除节点并添加新节点Swift

我试图删除一个节点并在解散了前一个节点后加载一个新节点。

其实我可以它使用一个单独的FUNC内删除:

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

但在那之后,我回顾功能“的addChild”新节点没有出现在现场。

func addChild(object: String){ 
     if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first { 

      let path = dir.appendingPathComponent(object) 

      //reading 
      do { 
       scene = try SCNScene(url: path) 
       node = scene.rootNode 

      } 
      catch {/* error handling here */} 
     } 
     counter += 1 

    } 

“的addChild”正在作为参数的阵列的元件和计数器每次在func被称为时间之后移动指针到所述阵列的另一个元件。

EX:我有一个包含两个元素的数组,我想第一次显示的对象始终是第一个,然后当我触摸该对象时,它将被删除,并且必须调用func addChild通过这种方式,前一个元素从数组中删除,下一个元素将被加载,这要归功于将指针移动到下一个元素的计数器。

我不知道我的例子是否足够说明。 提前谢谢!

+0

OFC它越来越内,因为第一元件显示在场景中... –

回答

0

修复了刚刚回想起函数内部的“sceneView.scene = scene”,每当我调用函数removeChild时从数组中删除元素。

FUNC的addChild(对象:字符串){ 如果让DIR = FileManager.default.urls(为:.documentDirectory,在:.userDomainMask)。首先{

 let path = dir.appendingPathComponent(object) 

     //reading 
     do { 
      scene = try SCNScene(url: path) 
      node = scene.rootNode 
      sceneView.scene = scene 
     } 
     catch {/* error handling here */} 
    } 


}