我有一个函数,可以循环我的场景来获取特定的节点。获得此节点后,它将遍历其子节点并检查是否有任何子节点具有几何图形或材料属性。如果他们这样做,那么我dispose()
然后remove
孩子。
在我现在dispose()
之前,我想检查该子项的geometry.id是否与场景中的任何其他子项几何图形 ID 匹配。如果它匹配,那么我不dispose
我只是remove
它。如果它没有任何匹配的几何 id,那么我可以dispose
然后remove
它。
我想你可以尝试引用计数吗?
var counts = {};
// when adding mesh
counts[mesh.geometry.id] = (counts[mesh.geometry.id] || 0) + 1;
// when removing mesh
counts[mesh.geometry.id]--;
if (counts[mesh.geometry.id] == 0) {
// safe to dispose
}