我正在尝试用另一个character模型替换一个object3D,同时保留它的所有属性,比如位置
var object = new THREE.Object3D( );
object = models.character[0].clone( );
object.position.set( 100, 230, 15 );
scene.add( object.scene );
const clip = THREE.AnimationClip.findByName( object.animations, 'idle' );
var action = mixer.clipAction( clip );
action.play();
//...later on, replace the model, while keeping it's position
object = models.character[1].clone( );如何替换THREE.Object3D( )的模型
发布于 2021-11-09 04:20:07
Object3D没有模型,因为它没有几何体或材质。这行代码不会做任何事情,因为您会立即用其他代码替换Object3D:
var object = new THREE.Object3D( );
object = models.character[0].clone( );我认为您应该使用Mesh,它是Object3D的子类。现在,如果您想要更改Mesh的“模型”,您可以访问它的.geometry属性,并为它分配一个新的属性:
// This is the original geometry
const mesh = new THREE.Mesh(geometry, material);
mesh.position.set(100, 230, 15);
// Here we assign a new geometry to the Mesh
mesh.geometry = someOtherGeometry;https://stackoverflow.com/questions/69870585
复制相似问题