在THREE.js文档中,它说使用Group比Object3d更好,但为什么呢?

在THREE.js文档中,它说使用Group比Object3d更好,但为什么呢?,object,three.js,Object,Three.js,Object3d的文档中说: 请注意,这可用于通过.add(object)方法对对象进行分组,该方法将对象作为子对象添加,但最好使用Group 但是为什么使用Group更好?您可以使用THREE.Group或THREE.Object3D来保存对象集合 “最好”使用THREE.Group仅在以下意义上 (1) 它可能使您的代码更具可读性,并且 (2) 使用THREE.Group提示渲染器对象本身不可渲染 object instanceof THREE.Object3D; // object cou

Object3d的文档中说:

请注意,这可用于通过.add(object)方法对对象进行分组,该方法将对象作为子对象添加,但最好使用Group


但是为什么使用Group更好?

您可以使用
THREE.Group
THREE.Object3D
来保存对象集合

“最好”使用
THREE.Group
仅在以下意义上

(1) 它可能使您的代码更具可读性,并且

(2) 使用
THREE.Group
提示渲染器对象本身不可渲染

object instanceof THREE.Object3D; // object could be renderable (e.g., a THREE.Mesh)

object instanceof THREE.Group; // object, itself, is not renderable

three.js r.84

因为:“这与Object3D几乎相同。它的目的是让处理对象组的语法更加清晰。”这是我的假设。谢谢你指出了相关的路线。当然,高度相关的点#1,这是我最初的假设。用自定义字段覆盖组的“type”字段有问题吗?我知道我们有“userData”对象,只是好奇这是否会在三个对象内产生影响以及如何处理对象。我建议您使用
userData
属性以避免将来的破坏。我的场景中有大量网格,例如一些是家具之类的资产,很少是墙壁和地面。我希望能够快速地仅隐藏/显示资产。那么,将所有资产放在一个场地内并设置“group.visible=false”或迭代所有资产并执行“asset.visible=false”会更快吗?还是一样?Thanks@Philippe我想你已经做了一个实验,并且自己回答了你的问题,但是你看。