删除节点后,SceneKit内存不会释放

时间:2018-01-27 19:43:21

标签: swift scenekit

我正在向场景中添加节点,并在他们离开相机的视野时将其移除,如下所示:

img.alignleft {

    float: left;

    margin: 1em 1em 1em 0;
}
func removeUnusedBlocks() { for child in mapNode.childNodes { if !sceneView.isNode(child, insideFrustumOf: cameraNode) && child.worldPosition.z > playerNode.worldPosition.z { child.removeFromParentNode() blocks.removeFirst() } } } 成功调用

removeUnusedBlocks(),因此我知道节点正在从场景中删除。

然而,记忆持续存在并且增加!我看到fps迅速下降,并且代表(粉红色部分)增加。

enter image description here

我查看了关于将func renderer(_ renderer: SCNSceneRenderer, didApplyAnimationsAtTime time: TimeInterval) { }设置为geometry的答案here,并将其添加到nil

GameViewController.swift

deinit { scene.rootNode.cleanup() } 关闭括号之后:

GameViewController.swift

但它没有做任何事情。我该怎么办?

0 个答案:

没有答案