我一直在與谷歌在全球的WebGL並試圖獲得一些基本的相互作用的地方,其中之一包括點擊由緯度,經度產生的酒吧等intersectObjects不是函數
從我看過的大量的three.js例子來看,答案就在於投影儀和光線找到交點。我遇到的問題是與下面的代碼,這已略有從幾個其它來源的扭捏:
var projector = new THREE.Projector();
if (event.target == renderer.domElement) {
var x = event.clientX;
var y = event.clientY;
var v = new THREE.Vector3((x/w)*2-1, -(y/h)*2+1, 0.5);
projector.unprojectVector(v, camera);
var ray = new THREE.Ray(camera.position, v.subSelf(camera.position).normalize());
var intersects = ray.intersectObjects(scene.children);
if (intersects.length > 0) {
console.log("success");
}
}
「ray.intersectObjects不是一個函數」是錯誤,具體。
任何想法?提前致謝。
我也想到了這一點,所以我抓住了最新的一個,並更新了我的圖書館。我仍然收到相同的錯誤信息。我真的認爲這就是它! =/ – gotohales
啊。所以你使用的是舊版本。只要定義了'w'和'h',你的代碼就可以與r.52一起工作。現在有什麼錯誤? – WestLangley
是的,我使用的是一個月或兩個月前的版本,但它似乎不是一個版本問題,因爲** intersectObjects不是函數**錯誤仍然出現。很奇怪。 – gotohales