我正在向场景中添加节点,并在他们离开相机的视野时将其移除,如下所示:
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迅速下降,并且代表(粉红色部分)增加。
我查看了关于将func renderer(_ renderer: SCNSceneRenderer, didApplyAnimationsAtTime time: TimeInterval) { }
设置为geometry
的答案here,并将其添加到nil
:
GameViewController.swift
在deinit {
scene.rootNode.cleanup()
}
关闭括号之后:
GameViewController.swift
但它没有做任何事情。我该怎么办?