Как сделать, что бы raycasthit2d регистрировал попадание и проходил дальше?

Для того чтобы сделать RaycastHit2D регистрировал попадание и проходил дальше, вам необходимо использовать параметр ignoreTriggers в методе Physics2D.Raycast().

RaycastHit2D - это класс, который предоставляет информацию о результатах броска луча в сетке 2D физики. Когда луч попадает на объект с коллайдером, метод Raycast возвращает экземпляр RaycastHit2D, который содержит данные о попадании, такие как точка попадания, нормаль к поверхности и т.д.

По умолчанию, Raycast игнорирует объекты находящиеся на слоях с тегом "Ignore Raycast", но если это не подходит для ваших потребностей, вы можете использовать параметр ignoreTriggers.

Когда ignoreTriggers установлен в true, Raycast будет регистрировать попадания на коллайдерах, имеющих Collider2D.isTrigger установленным в true, в то время как при этом будет проходить сквозь них. При этом также будет проходить сквозь слои, которые вы отключили в настройках физики Unity.

Вот пример кода, который демонстрирует использование параметра ignoreTriggers:

RaycastHit2D hit = Physics2D.Raycast(origin, direction, distance, layerMask);
if (hit.collider != null)
{
    // Ваш код обработки попадания
}

RaycastHit2D hitIncludingTriggers = Physics2D.Raycast(origin, direction, distance, layerMask, -Mathf.Infinity, Mathf.Infinity, true);
if (hitIncludingTriggers.collider != null)
{
    // Ваш код обработки попадания с учетом игнорирования триггеров
}

В первом примере мы используем обычный Raycast, который игнорирует триггеры. Во втором примере мы использовали Raycast, который учитывает триггеры, указав true в параметре ignoreTriggers.

Запомните, что ignoreTriggers работает только с Collider2D.isTrigger установленным в true, и не будет работать с объектами, которые не имеют коллайдеров или имеют Collider2D.isTrigger установленным в false.