使用優秀的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