area_entered sometimes not working

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By lucart135

Hi,
i code a simple tower defence game and I have a little problem with collisions.
I wanted to create mechanism that, if the enemy get hit by a bullet of tower, the bullet will be seek to another enemy(changing his direction to next enemy).
But for some reasons, sometimes the method: ‘get_overlapping_areas()’ just doesn’t work.

code:

func _on_Bullet_area_entered(enemy):
enemy.hit(self)
pierce -= 1

var min_dist = 9999
var the_nearest_enemy = null
print("start XXXXXXXXXXXXXXXXXXX start")
for enemy2 in AutoTargetRange.get_overlapping_areas(): # THIS NOT WORKING
	print(enemy2)
	var dist = global_position.distance_to(enemy.global_position)
	if dist < min_dist and not enemy2.got_hit_by(self):
		min_dist = dist
		the_nearest_enemy = enemy
print("end   XXXXXXXXXXXXXXXXXXX   end")
if the_nearest_enemy != null:
	look_at(the_nearest_enemy.global_position)

How it works in the practise:

As you can see the output shows Enemys(Areas) between “start” and “stop”(always should be 4), but sometimes the enemies arent detect, despite on the video, the bullet collision overlaps with enemies.

:bust_in_silhouette: Reply From: lucart135

I changed get_overlaping_areas() to signals (area_entered, area_exited) but i got the same result.