我正在尝试使用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加载的对象有什么问题?
任何人都可以帮我解决问题吗?
答案 0 :(得分:1)
如果一个obj文件中有多个子节点,则附加一些数字以区分多个网格。 然后这应该工作:
scene.getObjectByName( "objectName" );