我目前正在使用three.js,但我遇到了一些问题。
我必须实现如下所示的代码,这里的问题是我不能真正访问变量gltf.scene
,因为它是另一个函数的代名词。
class Lamp extends Obj{
lamp;
constructor(){
super();
this.modelname = "Torch";
this.model = "./models/" + this.modelname + "/" + "scene.gltf";
//this.lamp = "teste";
let self = this;
this.loader = new THREE.GLTFLoader();
this.loader.load(this.model, function(gltf){
//let object = gltf.scene;
gltf.scene.scale.set( .02, .02, .02 );
gltf.scene.position.x = 0;
gltf.scene.position.y = 0;
gltf.scene.position.z = 0;
gltf.scene.name = "teste";
self.lamp = gltf.scene;
//console.log(gltf);
//scene.scene.add(gltf);
});
console.log(self.lamp);
}
getMesh() {
//console.log(this.loader);
//console.log(Lamp.lamp);
return this.loader.scene;
}
}
您可以从评论中清楚地看到,我尝试了多种方法来绕过它,并实际上访问gltf.scene变量而不会丢失内部数据。
有人可以帮我吗?有点卡在那。谢谢!