I had this sort of implementation with reference to player, but I like Area3D this would do signal based logic.