Three.js raycast создает пустой массив пересечений
я пытаюсь определить, когда пользователь нажал на определенный куб в моей 3D-сцене.Я видел несколько похожих вопросов, но, похоже, ни у одного из них не было такой же проблемы, как у меня
У меня есть 3D-массив кубов, который заполняется и отображается нормально, но когда вызывается моя функция мыши, массив пересечений всегда пуст - я могуне вижу чтоЭто неправильно и буду признателен за любую помощь.
Мой рендерер настроен так:
function setupRenderer()
{
renderer = new THREE.WebGLRenderer({antialias: true});
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setClearColorHex( 0xEEEEEE, 1 );
renderer.domElement.addEventListener( 'mousedown', onDocumentMouseMove, false );
$('body').append(renderer.domElement);
}
и обработчик события:
function onDocumentMouseDown(event)
{
console.log("mouse clicked!");
event.preventDefault();
if(event.target == renderer.domElement)
{
var mouseX = (event.clientX / window.innerWidth)*2-1;
var mouseY = -(event.clientY /window.innerHeight)*2+1;
var vector = new THREE.Vector3(mouseX, mouseY, 0.5);
projector.unprojectVector(vector, camera);
var raycaster = new THREE.Raycaster(camera.position, vector.subSelf(camera.position).normalize());
var intersects = raycaster.intersectObjects(cubes);
console.log("intersects.length: " + intersects.length);
if ( intersects.length > 0 ) {
console.log("intersected objects");
/* do stuff */
}
}
}
Вы можете увидеть текущий проект в действии наhttp://kev-adsett.co.uk/experiments/three.js/experiment1/