主要思路:
主要是利用Raycaster来进行光线检测,检测光线射中的物体的距离是否小于规定距离,小于的话就视为要碰撞。
主要问题:
在Raycaster的intersectObjects方法中,如果遇到复杂且没有后代、单一的物体,这个运算会非常慢,因为据查资料这个方法会遍历有可能相交的物体(主要是Mesh)的每一个面,所以将这个复杂且单一的物体拆分会好一点,不会卡了。我估计是因为拆分之后没可能相交的部分早早就不参与运算了,所以减少了运算量。具体是不是这样还有待查证。
参考:
link1
link2
link3
link4