Not sure if that’s really efficient. I’ve been using just an overlap for something this - it has always worked like a charm. In a scenario where a ball is already overlapping the tiles when the game starts:
You check for overlaps when the game starts.
This way you do not need GetAll or check distances. A simple component (that can be spawned dynamically and discarded) is all that’s needed.
As per usual, many solutions exist. Good luck with the rest!