TypeError Object [object object]没有方法SubSelf,TypeError Object [object object]没有方法intersectsPlane

时间:2013-03-04 21:09:41

标签: javascript three.js webgl

在使用优秀的Sim.js和Three.js库进行WebGL项目时,我偶然发现了下一个问题:

在某个地方,它使用THREE.Ray的下一个构造函数:

var ray = new THREE.Ray( this.camera.position, vector.subSelf( this.camera.position ).normalize() );

其中vector是Vector3,

会触发以下错误:

TypeError Object [object object]没有方法subSelf。

我检查了我正在使用的Three.js中的文档以及vector3上接近最多这个的方法

.sub( v ) Vector3

我尝试更改此内容并在此次调用中显示新错误:

var intersects = ray.intersectScene( this.scene );

再次抛出错误,因为当我检查时,ray没有intersectsPlane方法

1 个答案:

答案 0 :(得分:14)

我相信THREE.js api改变了一段时间。

正如您所发现的那样,

Vector3的{​​{1}} is now simply sub()

subSelf() Ray looks like it should be intersectPlane()

如果您想要复杂的场景交叉,请改为使用you probably want to use Raycaster。文档:http://mrdoob.github.com/three.js/docs/56/#Reference/Core/Raycaster

Three.js文档不是最好的文章......然而,可以从简单的inspecting the source code中收集到很多见解。