Q:

Unity: Реальный размер объекта

Короче у меня есть куча UI объектов, и один из них вот этот:

Вот тут вы можете видеть что размер объекта 680 на 680:

Я хочу с помощью этого кода получить размеры объекта:
Debug.Log(PictureAndBackground.GetComponent< RectTransform>().sizeDelta.x);
Debug.Log(PictureAndBackground.GetComponent< RectTransform>().sizeDelta.y);

Но получаю 0 на 0:

Я понимаю что это связано с Anchor Presets. Но что мне писать чтобы получить размеры объекта как на втором картинке, даже если у него Anchor Presets на stretch?

A:

Вам нужно поле .rect у вашего RectTransform. Класс Rect - как раз и представляет собой тот прямоугольник, который вы видите в редакторе у UI элементов.   
И, да, RectTransform не обязательно получать через GetComponent<T>(), т.к. в классах наследующихся от MonoBehaviour всегда есть ссылка на Transform объекта, на котором они висят. Вы можете просто привести .transform к RectTransform)
var rectTrans = PictureAndBackground.transform as RectTransform;
if (rectTrans != null)
{
    print(rectTrans.rect.width);
    print(rectTrans.rect.height);
}

