.mainTexture.width
даст вам размер пикселя, а с помощью .pixelsPerUnit
вы можете рассчитать х-положение (при условии, что начало в середине) и ширину в единицах
, игнорируя смещение это происходит с не быть в начале. ваш расчет должен выглядеть примерно так:
float size = 0;
if ((float)img.sprite.texture.width / transform.GetComponent<RectTransform>().rect.width <
(float)img.sprite.texture.height / transform.GetComponent<RectTransform>().rect.height)
{
size = (img.sprite.texture.width * transform.GetComponent<RectTransform>().rect.height /(float) img.sprite.texture.height);
}
else
{
size = transform.GetComponent<RectTransform>().rect.width;
}
float x = size * img.pixelsPerUnit * transform.lossyScale.x;
этот расчет должен дать вам x позицию (экстент), о которой вы просили, чтобы получить размер, необходимый для удвоения значения. Также, если изображение имеет большую ширину, чем высота, вам нужно добавить дополнительные регистры