How to dynamically add more raycasts to units differing in size?

I have a script called “dragable” that is applied to all units that are able to be picked up and placed on the board/grid in my game (from the side). Right now it works fine: I have units (cubes) of size 1x1x1 and the raycast on it points straight down. When the raycast touches the grid, that specific grid spot highlights and lets me know I can place the unit there. Think RTS or TD games.

However, I want units of differing sizes in my game, specifically ones of scale 2x2x2, 3x3x3 and so on. How do I place four raycasts on the units of size 2x2x2 in my code dynamically? I want four so that four grids highlight below the unit, and if and only if four are highlighted, I can drop the unit into place.

Now, I think it could be semi easy to place the raycast in each corner in the unit, however I want the unit split into equal pieces and the raycasts to be in the center of each piece. For instance, it would be just like making a 1x1x1 cube with a raycast in its center combined with three others to make a 2x2x2 piece.

Hopefully this makes sense, I just want more raycasts as the units get bigger. I imagine I’ll need a for loop running over at least 2x2 (4) iterations for a 2x2x2 unit and 3x3 (9) times for a 3x3x3 unit.

Lastly, if there is an easier way I’m all ears. I’m still learning and don’t want to over complicate this if I don’t have to. Can I place raycasts on objects just like a box collider or something instead of doing math in the script to make them during play?

Pseudo code thoughts:

int raysneeded = scale.x * scale.y;
for (int i = 1; i < = raysneeded; i++)
{
     placementray[i] = new Ray(transform.position * SOME FANCY MATH HEAR I NEED HELP WITH, Vector3.down);
}

Since no one helped me I decided to go the dumb route and just manually place multiple objects that each have a collider on them evenly spaced on each of my “dropper” units (real units don’t have them). So a 2x2x2 has 4 of these raycast objects, and a 3x3x3 has 9.