首页 > 解决方案 > raycasting 和 onMouseClick 从 three.js 场景中删除网格的问题

问题描述

当我单击它们时,我试图从我的 three.js 场景中删除 4 个网格。我似乎无法弄清楚问题是什么。我可以更改几何材料,但是当我尝试删除它们时它不起作用。这是我下面的光线投射代码

var raycaster = new THREE.Raycaster();
var mouse = new THREE.Vector2();

function onMouseClick( event ) {

    mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
    mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;

    raycaster.setFromCamera( mouse, camera );

    var intersects = raycaster.intersectObjects([a, b, c, d]);

    for ( var i = 0; i < intersects.length; i++ ) {

    if (intersects[ i ].object.geometry.type == "PlaneGeometry") {
            intersects[ i ].object.parent.remove(intersects[ i ].object);
        }
    }

}

标签: javascriptthree.jsraycasting

解决方案


可能是intersects[ i ].object.parentis null,所以不会发生删除。


推荐阅读