Three.JS调用camera.lookAt()时在控制台中抛出错误警告

Three.JS调用camera.lookAt()时在控制台中抛出错误警告,camera,three.js,scene,Camera,Three.js,Scene,我已经试着解决了5个小时了。不走运 我对我的场景使用飞行控制 在将对象添加到场景中后,我尝试使相机查看对象,如下所示: var mat = new THREE.MeshStandardMaterial( { color: 0xffffff, morphTargets: true, vertexColors: THREE.FaceColors, shading: THREE.FlatShading } ); var obj = new THREE.Mesh(new THREE.BoxGeometr

我已经试着解决了5个小时了。不走运

我对我的场景使用
飞行控制

在将对象添加到场景中后,我尝试使相机查看对象,如下所示:

var mat = new THREE.MeshStandardMaterial( { color: 0xffffff, morphTargets: true, vertexColors: THREE.FaceColors, shading: THREE.FlatShading } );
var obj = new THREE.Mesh(new THREE.BoxGeometry( 0.6, 1.8, 0.6 ), mat );
obj.name = <some id>;
obj.castShadow = true;

obj.position.x = p.posX;
obj.position.y = p.posY;
obj.position.z = p.posZ;

obj.rotation.x = p.rotX;
obj.rotation.y = p.rotY;
obj.rotation.z = p.rotZ;

scene.add( obj );

//NOTE 1            
camera.position.set(obj.position.x-10, obj.position.y+10, obj.position.z-10);

var pos = obj.position.clone();

//NOTE 2                
camera.lookAt(pos); //with this line, a warning is shown in the console
var mat=new THREE.MeshStandardMaterial({color:0xffffff,morphTargets:true,VertexColor:THREE.FaceColor,shading:THREE.FlatShading});
var obj=新的三点网格(新的三点网格几何体(0.6,1.8,0.6),mat);
obj.name=;
obj.castShadow=true;
对象位置x=p位置x;
对象位置y=p位置y;
obj.position.z=p.posZ;
对象旋转x=p旋转x;
对象旋转y=p旋转;
物体旋转z=p旋转z;
场景。添加(obj);
//附注1
摄像机位置设置(obj位置x-10,obj位置y+10,obj位置z-10);
var pos=obj.position.clone();
//附注2
摄像机。注视(pos)//有了这一行,控制台中将显示一条警告
显示的错误如下所示:

var mat = new THREE.MeshStandardMaterial( { color: 0xffffff, morphTargets: true, vertexColors: THREE.FaceColors, shading: THREE.FlatShading } );
var obj = new THREE.Mesh(new THREE.BoxGeometry( 0.6, 1.8, 0.6 ), mat );
obj.name = <some id>;
obj.castShadow = true;

obj.position.x = p.posX;
obj.position.y = p.posY;
obj.position.z = p.posZ;

obj.rotation.x = p.rotX;
obj.rotation.y = p.rotY;
obj.rotation.z = p.rotZ;

scene.add( obj );

//NOTE 1            
camera.position.set(obj.position.x-10, obj.position.y+10, obj.position.z-10);

var pos = obj.position.clone();

//NOTE 2                
camera.lookAt(pos); //with this line, a warning is shown in the console
THREE.WebGLProgram:gl.getProgramInfoLog()警告:找不到 顶点着色器属性“位置”与BindAttributeLocation匹配 请求

发生了什么事

奖金问题

即使在
注1
处改变位置,并且在
注2
处查看对象,当我开始飞行时,场景变为黑色


我也尝试了
轨道控制
,得到了相同的结果。

这不是错误,而是警告。它基本上只是告诉您
gl.bindAttributeLocation(程序,someLocation,“position”)
已被调用,但没有名为“position”的属性。这是一种虚假的警告,因为这是完全合法的,可以说是最佳实践WebGL。THREE.js选择打印警告,因为它们有时可能会有所帮助。似乎他们应该默认不打印警告,但我可以看到打印警告的理由。这不是错误,而是警告。它基本上只是告诉您
gl.bindAttributeLocation(程序,someLocation,“position”)
已被调用,但没有名为“position”的属性。这是一种虚假的警告,因为这是完全合法的,可以说是最佳实践WebGL。THREE.js选择打印警告,因为它们有时可能会有所帮助。似乎他们应该默认不打印警告,但我可以看到打印警告的理由。