Three.js通过Gui阻止光线投射
我想使用光线投射选择对象,但每次我想在three.js gui上选择某个对象时,都会触发Mousdownevent。 我怎么能说“如果Gui在对象前面,不要触发”Three.js通过Gui阻止光线投射,three.js,dat.gui,Three.js,Dat.gui,我想使用光线投射选择对象,但每次我想在three.js gui上选择某个对象时,都会触发Mousdownevent。 我怎么能说“如果Gui在对象前面,不要触发” document.addEventListener('mousedown',onDocumentMouseDown,false); 函数onDocumentMouseDown(事件){ 如果(事件){} gui是一个普通的three.js gui,如下所示: gui = new GUI( { width: 330 } ); 解决此
document.addEventListener('mousedown',onDocumentMouseDown,false);
函数onDocumentMouseDown(事件){
如果(事件){}
gui是一个普通的three.js gui,如下所示:
gui = new GUI( { width: 330 } );
解决此问题的一种方法是使用
jQuery
和一个附加控制变量:
$(gui.domeElement).mouseenter(函数(evt){
enableRaycasting=false;
} );
$(gui.domElement).mouseleave(函数(){
enableRaycasting=true;
} );
然后可以使用启用光线投射
来确定是否应该进行光线投射
演示:这非常有帮助,但仍然存在一个问题:如果dat.gui的下拉菜单太大,并且不再位于gui.doElement区域,则有时(并非每次)将启用光线投射。