threejs 克隆.clone()和复制.copy() 学习笔记

threejs yekong 57℃

克隆.clone()和复制.copy() 是threejs很多对象都具有的方法,比如三维向量对象Vector3、 网格模型Mesh、几何体、材质。

克隆.clone()

克隆.clone()简单说就是复制一个和原对象一样的新对象,下面以三维向量对象Vector3给大家举例,其他的threejs对象都可以参照类似的写法。

const v1 = new THREE.Vector3(1, 3, 2)
console.log('v1',v1)
// v2是新的Vector3对象,和v1的xyz属性值一样
const v2 = v1.clone()
console.log('v2',v2)

复制.copy()

复制.copy()简单说就是把一个对象属性的属性值赋值给另一个对象,下面以三维向量对象Vector3给大家举例,其他的threejs对象都可以参照类似的写法。

const v1 = new THREE.Vector3(1, 3, 2)
const v3 = new THREE.Vector3(4, 5, 6)
// 读取v1的x y z 赋值给v3的x y z
v3.copy(v1)

Mesh克隆.clone()

通过mesh克隆.clone()一个和mesh一样的新模型对象mesh2。

const mesh2 = mesh.clone()
mesh2.position.x = 100

通过克隆.clone() 获得的新模型和原来的模型共享材质和几何体

几何体和材质克隆.clone()

const mesh2 = mesh.clone()
// 克隆几何体和材质,重新设置mesh2的材质和几何体属性
mesh2.geometry = mesh.geometry.clone()
mesh2.material = mesh.material.clone()
//改变mesh2颜色,不会改变mesh的颜色
mesh2.material.color.set(0xff0000)
喜欢 (0)