为什么这个 Threejs 克隆组通过 GLTFLoader 加载时行为不正常?

Ray*_*lha 3 three.js

因此,我尝试从 Three.js 示例中克隆士兵模型,因为稍后我想要多个模型: https: //thirdjs.org/examples/webgl_animation_skinning_blending.html

我将第 93 行更改为:

            const loader = new GLTFLoader();
            loader.load( 'https://threejs.org/examples/models/gltf/Soldier.glb', function ( gltf ) {

                model = gltf.scene.clone();
                scene.add( model );

                model.traverse( function ( object ) {

                    if ( object.isMesh ) object.castShadow = true;

                } );
Run Code Online (Sandbox Code Playgroud)

但现在士兵已经很大了。

在此输入图像描述

为什么会发生这种情况?有解决办法吗?

这是一个显示问题的 jsfiddle:

https://jsfiddle.net/paranoidray/jLpzk374/22/

如果您查看 jsfiddle 并更改第 93 行并删除 clone() 调用。一切又恢复正常了...

任何帮助将非常感激。

Mug*_*n87 6

gltf.scene请像这样克隆:

model = SkeletonUtils.clone( gltf.scene );
Run Code Online (Sandbox Code Playgroud)

核心尚不支持克隆蒙皮网格物体。但是,您可以使用它SkeletonUtils.clone()来执行此任务。

https://jsfiddle.net/yesxrq7g/