Динамическое изменение положения Raycaster

У меня есть холст, внутри которого несколько кубиков. Я использую Raycaster, чтобы выбрать их и изменить их цвета. Но холст находится внутри объекта draggable, и когда я перемещаюсь, я не могу изменить цвета, изменение цвета работает в исходном положении. Я думаю, что я также должен изменить размеры Raycaster. Как я могу это сделать?

Вот пример.


person István    schedule 09.01.2015    source источник
comment
onDocumentMouseDown() даже не вызывается после события перетаскивания. Я не думаю, что это проблема three.js.   -  person Bob Woodley    schedule 09.01.2015
comment
Вопрос как решить тогда..   -  person István    schedule 10.01.2015


Ответы (1)


попробуйте изменить код следующим образом:

function onDocumentMouseDown( event ) {

    event.preventDefault();

    var x = event.offsetX == undefined ? event.layerX : event.offsetX;
    var y = event.offsetY == undefined ? event.layerY : event.offsetY;

    var vector = new THREE.Vector3();
    vector.set( ( x / renderer.domElement.width ) * 2 - 1, - ( y / renderer.domElement.height ) * 2 + 1, 0.5 );
    vector.unproject( camera );

    raycaster.ray.set( camera.position, vector.sub( camera.position ).normalize() );
...
person Almaz Vildanov    schedule 11.01.2015