Расстояние между объектами Unity3d

У меня на сцене есть два объекта. При клике на объект из него появляется луч. При столкновении с другим объектом, второй объект также бросает луч в направлении первого объекта. Это нужно чтобы вычислить расстояние между не центрами, а между стенками объектов. Картинка для наглядности

введите сюда описание изображения

Создание лучей

 private void CreateRays()
{
    GameObject m_selectObj = this.SelectedObj;
    Vector3 m_rayEndObj = g_SecondObj.transform.position;
    Vector3 m_startPosition =  m_selectObj.transform.position;

    Vector3 clashSecondObj = CreateRay(m_startPosition, m_rayEndObj);
    Vector3 clashFirstObj = CreateRay(m_rayEndObj, m_startPosition);
    ViewDistRay(g_lineRenderer, clashSecondObj, clashFirstObj);
    Vector3 g_oldStartPos = clashFirstObj;
    Vector3 g_oldFinishPos = clashSecondObj;
    

     
}

Создание луча

 private Vector3 CreateRay(Vector3 m_startPosition, Vector3 m_endPosition)
{
    RaycastHit hit;
   
    Vector3 result = Vector3.zero;
    Ray ray = new Ray(m_startPosition, m_endPosition);
    if (Physics.Raycast(ray, out hit))
    {
        result = hit.transform.position;
        
    }

    return result;
}

Пока что получается так введите сюда описание изображения


Ответы (1 шт):

Автор решения: Vlad

Вот мне помогло

RaycastHit hit;
    Ray ray = new Ray(m_startPosition, m_rayEndObj);
    if (Physics.Raycast(ray, out hit))
    {
        var hitCollider = hit.collider;
        var point1 = startCollider.ClosestPoint(hitCollider.transform.position);
        var point2 = hitCollider.ClosestPoint(startCollider.transform.position);
        ViewDistRay(g_lineRenderer, point1, point2);
    }
→ Ссылка