【问题标题】:Problems with raycasting and onMouseClick to remove a mesh from three.js sceneraycasting 和 onMouseClick 从three.js 场景中删除网格的问题
【发布时间】:2019-03-27 02:21:17
【问题描述】:

当我点击它们时,我试图从我的 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);
        }
    }

}

【问题讨论】:

  • 试过了,没用。不过谢谢!
  • 如果您能够使用光线投射更改材料,那么问题不在于发布的代码。
  • 我认为问题出在我的 if 语句中。如果您想查看整个代码,可以在此处查看该站点:jacobtruax.info

标签: javascript three.js raycasting


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    • 2012-06-21
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    相关资源
    最近更新 更多