大家好,
我正在开发一个判断真实最近目标点的系统。
背景
我试图解决的问题是:当我们面对一个有很多目标,其中有一些较大的目标,其边界会将较小的目标完全包含时。
我的当前逻辑是通过判断哪个目标的中心点距离我最近。这存在一定的局限性。
理想情况下,我希望可以检测出哪一个目标的边界点距离我最近,这个距离最小的边界点就是理论上最接近的目标。
问题
目前我考虑使用物理射线检测功能。但是,我知道物理射线检测是在资源消耗比较大的场景,并且我通过在 0.25s 上限制激发检测的频率,并且基于 NetworkObjectId 进行时间差异(这样便不会一次激发所有的 agent 所对应的 ray),但是,我认为需要找到一种更高效的方法。
我的尝试
我尝试使用 Physics.ClosestPointInBounds 功能,但目前我发现,这个功能不全upport 们 MeshColliders(我大量使用 mesh collider 来代表各个物体),尽管您看起来看到的是这个站点的蓝色方盒,但这个蓝方盒并不是这个站点或飞机的 collider。
关注点
使用物理射线检测能够解决问题,但是我担心这项技术在扩展阶段存在问题,因为我有一个计算复杂度达到N*X 的问题,其中 n 是站点目标检测距离内的目标数量,X 是站点目标数量。在长时间运行中,这里会有非常多的射线,由于我使用此系统来检测导弹目标(有可能在一个区域里有上百个目标),因此,我对此问题有很大的担忧。
我考虑这个问题,如果一个物体超出了某个大小限制,就使用物理射线,但是这看起来对我来说像是用了一个 hack。
应该为何程度地担忧使用物理射线检测?
评论 (0)