这里我有为对象添加线框的功能,所以我使用以下函数来执行它,在第一个条件下它正在工作,我可以应用线框
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);
,它不起作用线框不会从对象中删除
答案 0 :(得分:1)
我认为这就是你想要的。你需要一个全局变量来存储线框对象只为它分配一次值(如果声明),然后有选择地添加它或从场景中删除它。
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 );
}
}