我已将网格和CSS2DObjects(标签)添加到THREE.js组。
当切换Group.visible
属性时,网格的可见性也会发生变化(如预期)。
但是,不幸的是,CSS2DObjects的可见性没有改变。
这是已知的行为,2019年的话题线程显示如何通过将CSS2DObject设置style.display
为'none'
或来切换CSS2DObject(具有已知div)的可见性'block'
。(感谢Mugen87)。
labelDiv1.style.display = 'none';
labelDiv2.style.display = 'block';
我需要一种方法来获取“组中”所有CSS2DObject的列表-(a)因为它们已直接添加到组中,或者(b)因为它们已添加到已添加到组中的网格中组或(c)更复杂的层级关系,例如,网格的子级是添加到组中的网格的子级。
然后,对于每个选定的CSS2DObject,我需要获取关联的div。如果有时间,我可能可以解决一些问题,该问题对于我正在开发的相对简单的应用程序有效。但是我想知道是否已经存在一些东西,它可能更灵活,并且将来可以节省重新发明轮子的时间。(理想情况下,这样的功能将成为THREE.js IMO的一部分)。
您正在寻找Object3D.traverse()
,该对象以递归方式遍历对象的所有后代,包括子代,孙子代等等。
https://threejs.org/docs/#api/zh/core/Object3D.traverse
在遍历回调中,您可以检查该对象.type
以查看它是否为CSS2DObject。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句