gpt4 book ai didi

javascript - 在 Three.js 68 到 69 的端口中 : Cannot read property 'boundingSphere' of undefined

转载 作者:行者123 更新时间:2023-11-28 07:51:42 31 4
gpt4 key购买 nike

我正在将一个项目从 Three.js v68 移植到 v69,但在 Three.js v69 的第 6077 行收到一条错误消息:Uncaught TypeError: Cannot read property 'boundingSphere' of undefined:

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

intersectsObject: function () {
var sphere = new THREE.Sphere();
return function ( object ) {
var geometry = object.geometry;
if ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();
sphere.copy( geometry.boundingSphere );
sphere.applyMatrix4( object.matrixWorld );
return this.intersectsSphere( sphere );
};
}(),

我的代码中应该注意哪些已迁移到此处?

我从 68 切换到 69,以便使用几个三个脚本进行一些后处理(THREE.EffectsComposer 和其他 here )。这些脚本现在需要在 69 中使用 PlaneBufferGeometry(也许还包括其他内容)。

更新:这是堆栈跟踪:

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 包含一组其他 Object3D,并且没有自己的固有几何形状 - 它只是为了方便起见,以便我可以轻松访问该组对象它包含。

最佳答案

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

关于javascript - 在 Three.js 68 到 69 的端口中 : Cannot read property 'boundingSphere' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26724715/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com