Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.3k views
in Technique[技术] by (71.8m points)

three 整个场景可以深度拷贝吗

使用场景:
场景默认有个网格,坐标线,环境光

每次加载一个不同的场景,需要去清除场景中里面的scene.children对象(非网格,坐标线,环境光), 如果不是深拷贝,每次移除一个children的,foreach的length就会发生变化,部分想移除的children 就没移除

var objects =this.scene.children;

// 清除场景非默认初始化数据

objects.forEach(obj => {

if(obj.name ==='grid'|| obj.name ==='axisHelper'|| obj.name ==='ambientLight') return

this.removeObject(obj)

})


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

用filter吧

this.scene.children = this.scene.children.filter(obj => {
    return obj.name ==='grid'|| obj.name ==='axisHelper'|| obj.name ==='ambientLight';
})

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...