저는 ThreeJS 프로젝트를하고 있었고 레이캐스팅을 사용하여 캔버스에있는 오브젝트와 상호 작용했습니다. 테스트 할 컴퓨터가 4 대 있으며 모두 최신 버전으로 업데이트되었습니다.ThreeJS : Raycasts가 일부 컴퓨터에서 꺼져 있습니다.
컴퓨터 중 하나에서 레이캐스팅은 마우스가있는 위치에서 벗어났습니다. 그리고 무엇이 다른 것과 다른 방식으로 동작하는지 알 수 없습니다.
아이디어가 있으십니까?
코드 :
// Performs a Raycast for Ortho camera type
PerformOrthographicRaycast: function (event, canvas, renderer, camera, objects) {
var vector = new THREE.Vector3(0, 0, 0);
var dir = new THREE.Vector3(0, 0, 0);
vector.x = ((event.clientX - canvas.getBoundingClientRect().left)/renderer.domElement.width) * 2 - 1;
vector.y = -((event.clientY - canvas.getBoundingClientRect().top)/renderer.domElement.height) * 2 + 1;;
vector.z = -1; // z = - 1 important!
vector.unproject(camera);
dir.set(0, 0, -1).transformDirection(camera.matrixWorld);
this._Raycaster.set(vector, dir);
var intersects = this._Raycaster.intersectObjects(objects, true);
if (intersects.length) {
return intersects;
}
else
return null;
},