在绘制threejs场景的过程中,可能需要很多相似的几何体,如果每次都创建新的,会影响性能,所以建议使用克隆。
//创建网格
var scene = new THREE.Scene();
createNewMesh(){
var geometry = new THREE.BoxGeometry(100, 100, 100); //创建一个立方体几何对象Geometry
var material = new THREE.MeshLambertMaterial({
color: 0x0000ff
}); //材质对象Material
var mesh = new THREE.Mesh(geometry, material); //网格模型对象Mesh
return mesh
}
//在场景中加入多个上边创建的网格
createMoreMesh(){
let allnewMesh = new THREE.Object3D()
allnewMesh.name ='allnewMesh '
let newMesh = createNewMesh().clone()
//修改新克隆的几何体颜色
newMesh.material = newMesh.material.clone()
newMesh.material.color.set(new THREE.Color('#FF0000'))
//给新克隆的几何体一个名字
newMesh.name('newMesh1')
allnewMesh.add(newMesh)//可以把多个newMesh加入allnewMesh中,方便统一管理
//把新的几何体加入场景中
scene.add(allnewMesh)
}
//从场景中删除网格
removeMesh(){
scene.getObjectByName('allnewMesh').remove(scene.getObjectByName('allnewMesh').getObjectByName('newMesh1'))
}