0
我希望檢測何時點擊了對象。我正在從three.js編輯器生成一個頁面。這是一個輝煌的環境。確定在three.js中點擊的對象
繼續這篇文章的建議(https://mandemeskel.wordpress.com/2013/08/19/mouse-events-raycasting-with-three-js/)我結束了以下代碼。我在發生問題時發表了評論。
function mousedown(event) {
var scene = this.parent;
var projector = new THREE.Projector();
var mouse_vector = new THREE.Vector3(),
mouse = { x: 0, y: 0, z: 1 },
ray = new THREE.Raycaster(new THREE.Vector3(0,0,0), new THREE.Vector3(0,0,0)),
intersects = [];
mouse.x = (event.clientX/window.innerWidth) * 2 - 1;
mouse.y = - (event.clientY/window.innerHeight) * 2 + 1;
mouse_vector.set(mouse.x, mouse.y, mouse.z);
// How do I get the camera?
projector.unprojectVector(mouse_vector, camera);
var direction = mouse_vector.sub(camera.position).normalize();
ray.set(camera.position, direction);
var object = scene.getObjectByProperty('uuid', this.uuid, true);
intersects = ray.intersectObject(object);
if(intersects.length) {
alert("hit");
event.preventDefault();
}
}
我已經通過修改已發佈頁面中的app.js來臨時解決了這個問題。通過將相機變量移動到全局範圍內,我避開了它,但它顯然是一種巧合。有沒有辦法在不修改app.js的情況下訪問編輯器生成的相機?
var camera;
var APP = {
Player: function() {
....
你的問題是指訪問'在javascript中關閉'。在編寫你需要的代碼之前,你可能需要閱讀它。 – Atrahasis