Javascript 在Three.js 68到69的端口中:无法读取未定义的属性“boundingSphere”

Javascript 在Three.js 68到69的端口中:无法读取未定义的属性“boundingSphere”,javascript,three.js,migration,Javascript,Three.js,Migration,我正在将一个项目从Three.js v68移植到v69,收到一个错误,上面写着Uncaught TypeError:无法读取Three.js v69第6077行中未定义的属性“boundingSphere”: 这是THREE.Frustrum.prototype中的一个函数: 这里迁移了什么,我应该在代码中注意什么 我将从68切换到69,以便使用三个脚本来执行一些后处理THREE.EffectsComposer和其他脚本。这些脚本需要使用PlaneBufferGeometry(现在在69中),也

我正在将一个项目从Three.js v68移植到v69,收到一个错误,上面写着Uncaught TypeError:无法读取Three.js v69第6077行中未定义的属性“boundingSphere”:

这是THREE.Frustrum.prototype中的一个函数:

这里迁移了什么,我应该在代码中注意什么

我将从68切换到69,以便使用三个脚本来执行一些后处理THREE.EffectsComposer和其他脚本。这些脚本需要使用PlaneBufferGeometry(现在在69中),也许还有其他一些东西

更新: 以下是堆栈跟踪:

Uncaught TypeError: Cannot read property 'boundingSphere' of undefined Three_69_max.js:6077
(anonymous function) Three_69_max.js:6077
projectObject Three_69_max.js:21161
projectObject Three_69_max.js:21200
render Three_69_max.js:21035
animLoop.render AnimationLoop.js:161
animate MainBreederProgram.js:14
init MainBreederProgram.js:32
...
更新:
深入查看调用堆栈,在我的场景中询问Object3D的几何体时,它似乎崩溃了。Object3D包含一组其他Object3Ds,并且没有自己固有的几何图形-它只是为了方便起见,所以我可以轻松访问它包含的一组对象。

根据上面@WestLangley的建议,我改变了代码的组织。最初,我使用Object3Ds通过v68在场景中保存不同的对象集-这样我可以轻松访问它们,并在动画的更新阶段迭代场景内容的子集。现在,从v69开始,我将所有这些对象直接放置到场景中,并对它们进行命名。

场景图的主要功能之一似乎是促进对象分组,因此这种行为对我来说很奇怪,我在r71中也遇到了同样的例外

使用THREE.Group而不是THREE.Object3D修复了我的错误


在代码中,我找到了一个名为THREE.Group的未记录的东西,它继承自THREE.Object3D。组似乎没有参与平截体检查,但他们的子组会参与,这是我们想要的行为。

frustum.intersectsObject对象要求对象具有几何体。是的,我看到了-如何为Object3D提供几何体?我尝试使用基于.getBoundingBoxYou't的Box3。仅将具有几何图形的对象传递给函数。
Uncaught TypeError: Cannot read property 'boundingSphere' of undefined Three_69_max.js:6077
(anonymous function) Three_69_max.js:6077
projectObject Three_69_max.js:21161
projectObject Three_69_max.js:21200
render Three_69_max.js:21035
animLoop.render AnimationLoop.js:161
animate MainBreederProgram.js:14
init MainBreederProgram.js:32
...