欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

解决threejs对mesh进行clone后“修改material原皮肤也变更”问题

程序员文章站 2022-05-26 19:10:50
...

解决threejs对mesh进行clone后“修改material原皮肤也变更”问题

threeJs提供了很多copy和clone方法,copy用来复制原对象属性到自己创建的新对象去,clone则直接复制一个新的对象,但是使用Raycaster射线做obj模型选择时,使用clone方式选择指定对象对其颜色进行增强,但是修改新对象的material原皮肤也变更。

这是因为threejs中的clone方法是一个浅度的clone,clone复制了新的对象,但是原对象内部的对象(属性为对象)不会被clone,我们需要对内部对象也进行clone就可以

borderMesh = mouseonverIntersects[i].object.clone();
borderMesh.material = borderMesh.material.clone();
borderMesh.material.color.set("#ff0000");

解决threejs对mesh进行clone后“修改material原皮肤也变更”问题

相关标签: ThreeJS