使用优秀的Sim.js和Three.js库处理WebGL项目时,我偶然发现了下一个问题:TypeError Object [object object]没有方法SubSelf,TypeError Object [object object]没有方法intersectsPlane
沿途某处,它使用THREE.Ray下一构造:
var ray = new THREE.Ray(this.camera.position, vector.subSelf(this.camera.position).normalize());
其中载体是的Vector3,
这触发了以下错误:
TypeError Object [object object]没有方法subSelf。
我检查,我使用从three.js所的文件和该的Vector3走近方法最这个人是
.sub(v) Vector3
我试图改变这一点,新的错误显示了这个电话:
var intersects = ray.intersectScene(this.scene);
因为,当我检查,射线没有一个intersectsPlane方法
实际上我第一次弄错了,原始代码是ray.IntersectScene,它不存在,我用intersectPlane替换它,它是Ray.js中存在的唯一相交,它产生了一个新的“不能调用方法点的undefine“错误 – maxandonuts 2013-03-04 21:29:40
根据three.js迁移wiki,intersectScene不再存在,它推荐使用intersectObjects(数组),任何想法拥有此方法? – maxandonuts 2013-03-04 21:58:17
@MaxRodriguezCollada你不想要一个'Ray',他们不再做复杂的碰撞。 “雷”现在是一个纯粹的数学结构,但是现在射线由一个叫做“Raycaster”的新类完成。 https://github.com/mrdoob/three.js/blob/master/src/core/Raycaster.js – 2013-03-04 22:02:42