如何使用objectLoader访问加载的模型

时间:2015-11-18 01:31:43

标签: three.js

我正在尝试使用ObjectLoader加载外部模型。我使用以下代码

loader.load( 'teapot.obj', function ( object ) {

        globalobject=object;
        object.traverse( function ( child ) {

            if ( child instanceof THREE.Mesh ) {

                child.material.map = texture;
                console.log(child);
                child.position.x = 3;
                child.position.y = -6;
                child.position.z = -17;
                child.scale.x=.04;
                child.scale.y=.04;
                child.scale.z=.04;
                child.name='tea';
                scene.add( child );

            }

        });

但是当我尝试使用以下代码在我的render方法中访问此对象时,它显示错误

scene.getObjectByName('tea').rotation.z+=.01;

我看到使用scene.getObjectByName('tea')undefined的控制台 我可以使用上面的命令使用所有其他标准的Mesh对象但是使用loader加载的对象有什么问题? 任何人都可以帮我解决问题吗?

1 个答案:

答案 0 :(得分:1)

如果一个obj文件中有多个子节点,则附加一些数字以区分多个网格。 然后这应该工作:

scene.getObjectByName( "objectName" ); 

This answer may help