Tower Range problem

Hi, I’m making a tower defense game where you build defense towers to attack enemies when they enter a specific range of each tower.

However, enemies are both ground & air units. I tried using Sphere Collision as range to detect when an enemy enters the attack range of the tower, but it is not suitable as the air range tends to be smaller than the ground (due to sphere collision’s shape). Instead of this approach, I thought of making a range variable (float) and check the 2D distance between the tower and the enemy, but it seems too much to use this every tick for all enemies and towers.

What is the best approach to make each tower have the same air & ground range?
Also, when using a collision component, do collision checks happen every tick?

Why not add a capsule collider around the tower. It will have a uniform shape for both land and air units (basically a cylinder).

It does not use tick to detect overlaps.

I tried using a capsule, but the greater the radius gets I get a shape that approaches the cricle and I need to adjust the height, but then it gets incredibly tall. Also scaling the capsule still produces either a sphere-like shape or an unnecessarily tall cylinder.