在Babylon.js中,mesh.clone() 方法用于创建一个给定网格(mesh)的副本。这个副本是原始网格的一个完全独立的复制,包括其几何形状、材质、位置、旋转、缩放等属性。clone() 方法会生成一个全新的网格对象,但其属性与原始网格相同。
属性 :
name?:”string | undefined:(可选)新创建副本的名称。如果提供了名称,则新副本将使用该名称;否则,将使用原始网格的名称并在其末尾添加“_clone”。
newParent?: BABYLON.Nullable<BABYLON.Node> | undefined:(可选)新副本的父级节点。如果提供了父级节点,则新副本将作为该节点的子节点;否则,新副本将与原始网格位于同一级别。
doNotCloneChildren?: boolean | undefined:(可选)一个布尔值,指示是否克隆原始网格的子节点。如果设置为 true,则新副本不会克隆原始网格的子节点,默认值为 false,即克隆子节点。
clonePhysicsImpostor?: boolean | undefined:(可选)一个布尔值,指示是否克隆原始网格的物理仿真器。如果设置为 true,则新副本将拥有与原始网格相同的物理仿真器;否则,新副本将不包含物理仿真器,默认值为 true。
例如:
mesh.clone('newMesh',undefined,false,false)
//如果要clone导入的glb模型,clone该模型的根节点即可
//例如:
const model = await BABYLON.SceneLoader.ImportMeshAsync('', _path, _name)
const newMesh = model.meshes[0].clone('newMesh')