What is the best way to raycast mutliple rays over a line

I am trying to raycast multiple rays from a line downward just like the picture below.
What is the best way to do that?
Notice that I don’t want to use a box overlap or sphere because I don’t want to get hit from the sides.

Here’s a little script that might do just that.


To raycast, you need a start point and a direction. The direction is simply Vector3.Down, but the start point/s needs to be a set of points on the line.


A point can be chosen using the formula: Vector3 point = StartPointOfLine + Direction * DistanceAcrossLine; This means that, if you wanted a point on a line, 5 units across, you would write: Vector3 point = StartPointOfLine + Direction * 5;


Here’s the full implementation for what you’re asking for. Hopefully it works, haven’t tried it:

    // Distance between each raycast
    public float Step = 1f;

    // Number of rays across the line
    public int Rays = 10;

    [Header("Line Values")]
    public Vector3 StartPoint = Vector3.zero;
    public Vector3 Direction = Vector3.right;

    void Start()
    {
        FireRaysOutSideOfLine();
    }

    void FireRaysOutSideOfLine()
    {
        for (int i = 0; i < Rays; i++)
        {
            Vector3 startPoint = StartPoint + Direction * i * Step;

            if (Physics.Raycast(startPoint, Vector3.down, out RaycastHit hit))
            {
                // Raycast from side of line hit something

                // Do whatever u want with 'hit'
            }
        }
    }

This script fires 10 rays facing down, each ray 1 unit apart from each other, out of the side of a line facing right. Hope that helps @akyu01