Godot 4.3
essentially these areas with the same collision layers and masks, with children shapes that overlap, both monitoring and monitorable do not show up in each other’s overlapping_areas array (or cause an area_entered signal because of each other) at all and i have no clue of how to debug that because it looks like i did everything right(?)
a video of the problem, note that the array in the log is hitbox.get_overlapping_areas():
in the _physics_process of the attack area2d:
func _physics_process(_delta):
var fern = get_tree().current_scene.get_node("player1/hitbox")
print("here"+str(overlaps_area(fern)))
print(fern.collision_layer)
print(collision_mask)
var s2 = get_tree().current_scene.get_node("player1/hitbox").get_child(0).shape
var s1 = get_child(0).shape
print(s1.collide(get_child(0).global_transform,s2,get_tree().current_scene.get_node("player1/hitbox").global_transform))
if Time.get_ticks_msec()>spawntime+duration*1000:
queue_free()
return
the output of the print calls when the shapes overlap visibly (visible collision shapes):
herefalse
4
4
true
one possibility i considered is the engine using the area2d’s transform instead of that of the collisionshape2d, but accounting for that changed nothing (though it would be really helpful is someone could tell me which transform is used, because a system in my game heavily relies on the shape’s transform being used).