我使用threex中提供的优秀代码,允许我捕获场景中各种对象的点击,这样我就可以选择它们。这没有问题。
我想扩展选择功能,用户可以在其中绘制一个选择框(工作),并且我可以检测场景中所有在此选择中呈现的对象。
查看三个/三个,一般onclick
算法似乎是:
Ray
ray.intersectObjects(scene)
,它会测试场景中每个对象的光线
路口这适用于单个' 1D'在系统中使用光线,但似乎并不是一种简单的方法来修改它以使用选择框。
在我尝试扩展此机制以使用选择截头体之前,是否有备用/现有设施?
答案 0 :(得分:3)
你的问题的答案是否定的,没有这样的现有设施。
我不会使用Raycaster.intersects()
。
最简单的做法可能是为每个对象分配一个2D screenCoords
属性,并将其设置为等于对象世界位置的屏幕投影。搜索此网站以了解如何操作。
然后,考虑选择那些screenCoords
在屏幕空间的选择框内的对象。
如果你需要完全遏制,那么你必须为每个顶点做上述操作,或者使用像边界球这样的近似值。
three.js r.58