Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js 我对FlyControls.js有问题_Three.js - Fatal编程技术网

Three.js 我对FlyControls.js有问题

Three.js 我对FlyControls.js有问题,three.js,Three.js,下面是我的代码: //设置场景大小 变量宽度=window.innerWidth,高度=window.innerHeight; //WebGL的对象 var container=null,renderer=null,scene=null,camera=null; 变量控制=null,统计=null; var clock=新的三个时钟(); //目标几何体 var-mesh=null; //初始化WebGL 函数initWebGL(){ 设置渲染器(); 设置场景(); 设置摄像头(); set

下面是我的代码:


//设置场景大小
变量宽度=window.innerWidth,高度=window.innerHeight;
//WebGL的对象
var container=null,renderer=null,scene=null,camera=null;
变量控制=null,统计=null;
var clock=新的三个时钟();
//目标几何体
var-mesh=null;
//初始化WebGL
函数initWebGL(){
设置渲染器();
设置场景();
设置摄像头();
setupLight();
}
//初始化渲染器
函数setupRenderer(){
//创建canva元素
renderer=new THREE.WebGLRenderer({
clearColor:0x9999,
clearAlpha:1.0
});
设置大小(宽度、高度);
//将画布添加到其容器中
容器=$(“#canvas-container-1”);
container.append(renderer.domeElement);
}
//初始化场景
函数setupScene(){
场景=新的三个。场景();
render();
}
//初始化摄像机
函数setupCamera(){
摄像机=新的三视角摄像机(
45,
宽度/高度,
0.1,
1000
);
相机。位置。设置(-5,13,10);
//摄像机控制
控件=新的三个。Fly控件(相机);
controls.doElement=容器;
controls.movementSpeed=10;
controls.rollSpeed=Math.PI/12;
controls.dragToLook=true;
场景。添加(摄影机);
摄像机。注视(场景。位置);
}
//将灯光添加到场景中
函数setupLight(){
var灯=新的三方向灯(0x7777);
光。位置。设置(10,30,20);
场景。添加(灯光);
var灯=新的三点灯(0xFFFFFF);
灯。位置。设置(250250250);
场景。添加(灯光);
}
//调用动画循环
函数更新(循环){
//更新相机控制
控件更新(clock.getDelta());
//更新渲染器
渲染器。渲染(场景、摄影机);
请求动画帧(循环);
}
//主网
函数addMesh(){
var loader=new THREE.JSONLoader();
loader.load(“models/demo/bmw.js”,函数(几何体){
//初始化网格的材质
var materials=新的三个。MeshPhongMaterial();
//初始网格
网格=新的三个网格(
几何学
材料
//几何与材料
);
//将网格添加到场景中
场景。添加(网格);
//动画
(函数循环(){
//网格旋转y+=0.005;
更新(循环);
})();
});
}
//楼层平面
函数addFloor(){
var floorTexture=new THREE.ImageUtils.loadTexture('models/textures/grey-concrete-texture-01.jpg');
floorTexture.wrapps=floorTexture.wrapT=THREE.RepeatWrapping;
地板结构。重复。设置(100100);
var floorMaterial=新的三网格基本材质({
地图:floorTexture,
侧面:三个。双面
});
var地板测量法=新的三平面几何(200200);
var地板=新的三层网格(地板测量、地板材料);
楼层位置y=0;
floor.rotation.x=Math.PI/2;
场景。添加(楼层);
}
//渲染
函数render(){
//网孔
addMesh();
//地板
addFloor();
}
我的模型加载正常。。。但是发生了一些问题

  • 控件.dragToLook
    属性为
    false
    。。。刷新网页,我可以看到我加载的模型,但如果我移动鼠标,我加载的所有模型将立即消失
  • 控制.dragToLook
    属性为
    true
    。。。前面的问题已经结束,但在多次单击场景后,所有内容都再次消失。。。我不能处理这个问题

请帮帮我

仅回复此问题,因为我遇到此线程试图修复同一问题。有幸替换了:

controls = new THREE.FlyControls(camera);
controls.domElement = container;


请注意,这并没有使我的鼠标控件正常工作,它只是禁用了它们并防止它们再次破坏我的项目。

FlyControls不是库的一部分,它是示例的一部分——没有任何保证。请考虑使用其他控件之一,非常感谢您的评论。那么,我应该用什么来代替“FlyControls.js”?这取决于你的应用程序。您可以尝试
firstPersonControl
OrbitControl
controls = new THREE.FlyControls(camera, container);