Compruebe si los elementos de la interfaz de usuario / RectTransform se superponen

Me gustaría saber cómo compruebo si dos paneles de la interfaz de usuario en mi lienzo de Unity se superponen.

Actualmente estoy haciendo esto comparando los elementos del lienzo Rects

Configuraciones de lienzo

Modo de renderizado: Espacio de pantalla - CámaraPixel Perfect: [Sí]Cámara de renderizado: cámara principalDistancia del plano: 100Capa de clasificación: predeterminadaOrden en capa: 0

Configuraciones de Canvas Scaler

Modo de escala de IU: tamaño de píxel constanteFactor de escala: 1Píxeles de referencia por unidad: 100

Código que estoy usando para verificar

[Header("Check For Overlap")]
public RectTransform PlayerBar;
public RectTransform LeftBar;
public Rect RectOne;
public Rect RectTwo;
public bool overlapping;

//Check if the two canvas element Rects overlap each other

public void CheckForOverlap()
{
    overlapping = false;
    // Convert Canvas RectTransforms to World Rects
    RectOne = GetWorldRect(LeftBar);
    RectTwo = GetWorldRect(PlayerBar);

    if (RectOne.Overlaps(RectTwo))
    {
        overlapping = true;
    }
}


public Rect GetWorldRect(RectTransform rt)
{
    //  Get World corners, take top left
    Vector3[] corners = new Vector3[4];
    rt.GetWorldCorners(corners);
    Vector3 topLeft = corners[0];

    // Rect Size ... I'm not sure if this is working correctly?
    Vector2 size = new Vector2(rt.rect.size.x, rt.rect.size.y);
    return new Rect(topLeft, size);
}

Lo que pasa

El bool 'superpuesto' cambia instantáneamente a verdadero.

El Rect One vuelve como (ejemplo)

X -7.5, Y 2.5 W 98.5, H 164.1667

Respuestas a la pregunta(2)

Su respuesta a la pregunta