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
Javascript 使用光线投射器添加延迟_Javascript_Three.js - Fatal编程技术网

Javascript 使用光线投射器添加延迟

Javascript 使用光线投射器添加延迟,javascript,three.js,Javascript,Three.js,我想,当我的光线投射器在2秒内与对象相交时,更新对象的纹理 因此,我尝试使用时钟功能,但不知道如何使用它 var时钟=新的三个时钟; clock.autoStart=true; var intersects=raycaster.intersectObjects可拾取,true; 如果相交,则长度>0{ 如果!时钟。正在运行的时钟。开始 如果clock.getElapsedTime>2{ 如果与[0]相交,则object.name==btn\U会议\U 01{ mesh_sphere.mater

我想,当我的光线投射器在2秒内与对象相交时,更新对象的纹理

因此,我尝试使用时钟功能,但不知道如何使用它

var时钟=新的三个时钟; clock.autoStart=true; var intersects=raycaster.intersectObjects可拾取,true; 如果相交,则长度>0{ 如果!时钟。正在运行的时钟。开始 如果clock.getElapsedTime>2{ 如果与[0]相交,则object.name==btn\U会议\U 01{ mesh_sphere.material.map=THREE.ImageUtils.loadTexture纹理/DIVE_IMMO_00004.jpg; } 如果与[0]相交,则object.name==btn\U lobble\U 01{ mesh_sphere.material.map=THREE.ImageUtils.loadTexture纹理/DIVE_IMMO_00003.jpg; } 如果与[0]相交,则object.name==btn\U\U 01{ mesh_sphere.material.map=THREE.ImageUtils.loadTexture纹理/DIVE_IMMO_00002.jpg; } 如果与[0]相交,则object.name==btn\U入口\U 01{ mesh_sphere.material.map=THREE.ImageUtils.loadTexture纹理/DIVE_IMMO_00001.jpg; } 如果与[0]相交,则object.name==btn\U外部{ mesh_sphere.material.map=THREE.ImageUtils.loadTexture纹理/DIVE_IMMO_00000.jpg; }; }
} 我用一个布尔值和一个setTimeout实现了这一点 我认为有更好的方法,但这就是我的想法 我就是这样做的:

var加载=错误 变量超时=空 函数渲染{ var intersects=raycaster.intersectObjects可拾取,true 如果相交,则长度>0{ 更新结构 }否则{ 重置加载程序 } //渲染场景 } 函数重置加载程序{ 如果加载{ 清除超时 加载=错误 } } 函数updateTexture{ 如果!正在加载{ 超时=设置超时功能{ //改变你的纹理 }, 2000 加载=真 } }
我尝试过,但这不想渲染黑屏:const render=>{var intersects=raycaster.intersectObjects pickable,true;如果intersects.length>0{updateTexture}其他{resetLoader}effect.renderscene,camera;}长达2秒的时间,我就是这样做的。