塔防 - 检查敌人的距离?

Tower Defense - Checking enemy distance?

此问题可能与 nested for loops/if 语句重复,但请耐心等待。我正在完成制作塔防的过程,我需要检查敌人是否在塔的范围内。我可以做一些物理圈,但我觉得最好的方法是检查每个敌人的塔的距离,看它是否在半径内。问题是,如果有 500 个 'enemies' 和 30 个塔,那么每帧就有 15,000 个 if 语句。这会很重性能吗?我知道使这更容易的唯一方法是尝试这些:

有没有其他方法可以做到这一点,或者我的工作进展顺利吗?

有没有可能你每次检查的时候所有的敌人都移动了?您可以在每次敌人移动时重新计算哪些塔在该特定敌人的半径内,然后仅更新那些已经移入或移出敌人半径的塔的敌人列表。您需要将每个敌人映射到一个塔列表,以及将每个塔映射到一个敌人列表。