1. 首页
  2. three.js

three.js只有将boxhelper添加到场景中时,光线投射器才能正常工作

three.jsn我想让fbx可以点击。我加载了fbx,从对象创建了一个长方体,使长方体与加载的fbx匹配。我基于该长方体创建了一个boxhelper,为其命名,并将其添加到场景和自定义“meshColliders”数组中。当我使用光线投射器(meshColliders),我可以成功地提取用于处理单击并触发事件的boxHelper名称。n问题是场景中始终存在可见的boxHelper。因此,我尝试不将boxHelper添加到场景中,因此它只添加到meshColliders阵列中,我认为会发生的是,它根本不显示boxHelper,但仍按计划工作,但我没有将其添加到场景中,这一事实使事件在我单击的任何位置触发,而不是仅在我实际单击fbx时触发。n怎么能这会发生吗?让fbx可点击的好做法是什么。将fbx子几何体或边界框添加到meshColliders数组无效。n请尝试使用Box3代替BoxHelper的实例。这样创建:nconst>nIt\”s not necessary to add box到您的场景。就这么做吧:nif ( raycaster.ray.intersectsBox( box ) === true ) {// your FBX was clicked} n谢谢你的反应。是否还有其他方法可以支持一组框,还是应该使用for循环?n不,您必须使用循环。n Raycaster only working correctly when adding boxhelper to the scenen

three.js只有将boxhelper添加到场景中时,光线投射器才能正常工作 为WP2原创文章,链接:https://www.wp2.cn/three-js/three-js%e5%8f%aa%e6%9c%89%e5%b0%86boxhelper%e6%b7%bb%e5%8a%a0%e5%88%b0%e5%9c%ba%e6%99%af%e4%b8%ad%e6%97%b6%ef%bc%8c%e5%85%89%e7%ba%bf%e6%8a%95%e5%b0%84%e5%99%a8%e6%89%8d%e8%83%bd%e6%ad%a3%e5%b8%b8/