如何检查场景中的节点是否包含匹配的几何体 ID?



我有一个函数,可以循环我的场景来获取特定的节点。获得此节点后,它将遍历其子节点并检查是否有任何子节点具有几何图形材料属性。如果他们这样做,那么我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
}

最新更新