javascript - Threejs如何使用WireframeHelper删除线框

标签 javascript three.js

我有一个为对象添加线框的函数,因此我使用以下函数来执行此操作,第一个条件是它正在工作并且我可以应用线框

 function wireframe(state){
                        
                    
                      if(state=='on')
                      {
                          var wfh = new THREE.WireframeHelper( mesh, 0xf00e0e );
                          wfh.material.wireframe = true;
                          //wfh.material.linewidth = 1; // looks much better if your PC will support it
                          scene.add( wfh );                     
        
                      }
                      if(state=='off')
                      {
                           var wfh1 = new THREE.WireframeHelper( mesh,0xf00e0e );
                           wfh1.material.wireframe = false;
                           scene.remove(wfh1);  
                      }
                
            }

在第二种情况下,我想删除对象上应用的线框,因此使用 scene.remove(wfh1); 删除场景,但它不起作用。线框不会从对象中删除。

最佳答案

我想这就是你想要的。您需要一个全局变量来存储线框对象,只需为其分配一次值(if 语句),然后有选择地添加它或将其从场景中删除。

var wfh;

function wireframe (state) {

    if  ( state=='on' )
    {
        if ( wfh === `undefined` )    // so you dont add a new wfh each time you call wireframe
            wfh = new THREE.WireframeHelper( mesh, 0xf00e0e );

        scene.add( wfh );                     
    }
    else if ( state=='off' )
    {
        scene.remove( wfh );  
    }
}

关于javascript - Threejs如何使用WireframeHelper删除线框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24407374/

相关文章:

javascript - 如何确定旋转/驱动气缸的旋转 Angular ?三.js

javascript多维数组和关联数组

javascript - 有没有更好的方法来 'fake' 链接的 href 属性?

javascript - Three.js 合并几何和八叉树选择

javascript - 使用 Three.js 从一侧看不到脸

三.js + WebVR 设置相机观看位置 "height"

javascript - Safari 点击 != 关注单选按钮

javascript - Emberjs 将多个 Controller 加载到一个 Controller 中

javascript - 如何通过使用图像上的单击功能从表单中删除动态创建的元素?

javascript - 可以在 aframe 实体上捕获键盘事件吗