我正在使用transformControls转换,旋转和缩放对象。我希望能够单击场景中的不同对象,并在需要时对其进行转换:并且可以!
唯一的问题是几何图形的可点击区域向上移动了一半:

javascript - Three.js-TransformControls-LMLPHP

这就是说,在下部区域中单击无法选择我的对象,但是如果在上方单击则将选择它。

对于collada文件,情况更糟。

我认为应该在这里:

function onDocumentTouchStart(event){
    event.preventDefault();
    event.clientX = event.touches[0].clientX;
    event.clientY = event.touches[0].clientY;
    onDocumentMouseDown(event);
}
function onDocumentMouseDown(event){
    event.preventDefault();
    mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
    mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
    raycaster.setFromCamera(mouse, camera);
    var intersects = raycaster.intersectObjects(objects);
    if(intersects.length > 0){
        SELECTED = intersects[ 0 ].object;
        scene.add(control);
        control.attach(SELECTED);
    } else{
        scene.remove(control);
    }
}


编辑:

天哪...问题是这里有一些利润...

但是现在,我的初学者问题是我真的不知道如何将transformControls附加到我的对象上。有了transformControls,我仍然有问题。但是,当我单击更改材质颜色时,它可以正常工作。转换控件有某种边距吗?我是这样做的:

if(intersects.length > 0){
            SELECTED = intersects[ 0 ].object;
            scene.add(control);
            control.attach(SELECTED);
        } else{
            scene.remove(control);
        }

最佳答案

答案很明显……:

    if(intersects.length > 0){
    SELECTED = intersects[ 0 ].object;

    control.attach(SELECTED);
    scene.add(control);

} else{
    control.detach(SELECTED);
    scene.remove(control);
}


我忘了拆下控件

09-25 11:25