Looping through positions vs. Region3?

I want to check for any players inside an area of a box. It seems to me that looping through all players and areas is better, because it only checks if the character’s Vector3 position is between 2 other vectors. The second option, however, is built into Roblox, but relies on parts and their CFrames, which is unnecessary work.

Should I loop through all players in the game and check if their character’s position is in an area, or should I just use Region3/GetPartBoundsInBox?

Note: Sorry if what I typed doesn’t make much sense, I was pretty tired when I posted this.