0
THREE.js를 사용하여 내 페이지에 일부 개체를 표시하고 있습니다. 개체를 클릭 할 수는 있지만 어떤 개체를 클릭해도 intersects[0].object.position
은 항상 x=0, y=0, z=0
을 반환하는 반면 개체의 실제 위치는 틀림 없음을 알았습니다.THREE.js intersects [0] .object.position은 항상 (0,0,0)을 반환합니다.
다음 코드를 검토하고 내가 뭘 잘못하고 있는지 논평 할 수 있습니까?
function onDocumentMouseDown(event) {
event.preventDefault();
var vector = new THREE.Vector3((event.clientX/window.innerWidth)*2-1, -(event.clientY/window.innerHeight)*2+1, 0.5);
projector.unprojectVector(vector, camera);
var ray = new THREE.Ray(camera.position, vector.subSelf(camera.position).normalize());
var intersects = ray.intersectObjects(teeth, true);
if (intersects.length > 0) {
//not working
camera.position.x=intersects[0].object.position.x;
//not working
camera.position.y=intersects[0].object.postion.y;
//working
intersects[0].object.material.color.setHex(Math.random()*0xffffff);
}
}
내가 교차 [0] .position을 찾을 수 없습니다 .x를 유효한 등록 정보로 사용하십시오. 비록 intersects [0] .point.x가 있지만 – ZedBee
미안하지만 실제로는 – Gero3
@ Gero3입니다. if (intersects.length> 0)는 교차 된 오브젝트 위치도 변경하는 것입니다. intersects [0] .object.position.z = 50; 이제 클릭하지 않을 때 개체의 원래 위치를 추적하는 방법을 모르므로 다른 개체를 클릭하면 다른 클릭 한 개체를 이전 위치로 이동할 수 있습니다. 어떤 생각? – ZedBee