【发布时间】:2011-10-01 00:43:19
【问题描述】:
所以我正在使用 Unity 来执行此操作,但我不确定这是否重要。
我的敌人不在可见屏幕上,我想在屏幕的一侧有指示符来指示它们的位置。没关系,但是有很多敌人,所以我想将它们分组。例如,我想要 1 个指标,旁边有一个 (8),而不是显示 8 个指标。
所以现在,我的算法是:
- 最小博客范围是我设置的常数
- 遍历所有敌人
- 检查与已分配到斑点的所有敌人的距离,如果在范围内,则分配给斑点
- 如果没有,检查其他未分配的敌人,如果有在blob范围内,则制作一个blob
我每帧都这样做,感觉效率低下。我能做些什么来改善这一点并节省帧之间的处理。例如,我可以如何处理前一帧的数据以使其变得更好(因为 blob 成员更改的可能性非常低,但它肯定会有更新的位置)。
或者,我应该停止担心它并继续,因为它只是矢量数学,它不会真的给引擎造成问题。
【问题讨论】:
-
我不太清楚你的指标。你是在指示位置还是只是方向?也就是说,你想要一种显示粗略位置的雷达,还是一个指向敌人位置而不给出范围的箭头?
-
只是边缘的一个箭头 --> 表明它们来自哪里以及有多少。
-
如果两个敌人在同一方向,但射程不同,是否应该分到一个组?
-
是的,我会考虑那些谨慎的 blob,用户会想知道它们是单独的波。如果我以后愿意的话,这很容易改变,只需按角度距离而不是实际距离分组。
标签: algorithm vector distance unity3d