im trying to add force to overlapping bodies in area3D
however they dont get recognized, they print out nothing
print > didexplode works
extends Node3D
@export var area : Area3D
@export var force = 5.0
func addexplosionforce():
print("didexplode")
for body in area.get_overlapping_bodies():
if body is RigidDynamicBody3D:
print(body.name)
var direction_vector = body.global_transform.origin - area.global_transform.origin
var distance = direction_vector.length()
var collision_force = (force / distance) * body.mass
body.apply_impulse(Vector3.ZERO, direction_vector.normalized() * collision_force)
func _on_visible_on_screen_notifier_3d_screen_exited():
self.queue_free()
rigid bodies to detect are set to layer 4