Unity 2D: получите ось X и ширину отрисованного изображения пользовательского интерфейса, а НЕ значения прямоугольного преобразования - PullRequest
1 голос
/ 02 марта 2020

Unity, у меня есть изображение, которому нужно включить сохраненное соотношение сторон, и мне нужно получить x-pos и ширину изображения в зависимости от того, как оно было отображено на экране, а НЕ от значений Rect Transform. Я надеюсь, что вы понимаете, может проблема. Как я могу получить x-pos и ширину этого?

enter image description here

Примечание: мне не нужно использовать Fitter Ratio Fitter и Content Size Fitter для этой ситуации. Мне просто нужны эти значения.

1 Ответ

0 голосов
/ 02 марта 2020

.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 позицию (экстент), о которой вы просили, чтобы получить размер, необходимый для удвоения значения. Также, если изображение имеет большую ширину, чем высота, вам нужно добавить дополнительные регистры

...