Verifique se os elementos da interface do usuário / RectTransform estão sobrepostos

Gostaria de saber como verifico se dois painéis de interface do usuário no meu Unity Canvas se sobrepõem.

Atualmente, estou fazendo isso comparando os elementos da tela Rects

Configurações de tela

Modo de renderização: Espaço na tela - CâmeraPixel perfeito: [Sim]Render Camera: Câmera PrincipalDistância do avião: 100Classificação da Camada: PadrãoOrdem na camada: 0

Configurações do Scaler Canvas

Modo de escala da interface do usuário: tamanho constante do pixelFator de escala: 1Pixels de referência por unidade, ele: 100

Código que estou 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);
}

O que acontece

O bool 'sobreposto' muda instantaneamente para true.

O Rect One retorna como (exemplo)

X -7,5, Y 2,5 W 98,5, H 164,1667

questionAnswers(2)

yourAnswerToTheQuestion