Как сделать картинка чтобы не выходила из префаба? (Unity)
С сервера получаю сообщения (либо текст, либо картинка) и вставляю их в соответствующие префабы. Но некоторые картинки выходят за пределы, как пофиксить так чтобы еще и разрешение сохранялось при этом?
Вот код обработки картинки:
private IEnumerator LoadContentImage(string url, Image image) {
UnityWebRequest www = UnityWebRequestTexture.GetTexture(url);
yield return www.SendWebRequest();
if (www.result == UnityWebRequest.Result.Success) {
Texture2D texture = ((DownloadHandlerTexture)www.downloadHandler).texture;
Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2());
image.sprite = sprite;
float imageWidth = texture.width;
float imageHeight = texture.height;
RectTransform rectTransform = image.GetComponent<RectTransform>();
float rectTransformWidth = rectTransform.rect.width;
float rectTransformHeight = rectTransform.rect.height;
float aspectRatio = imageWidth / imageHeight;
if (aspectRatio >= 1)
rectTransform.sizeDelta = new Vector2(rectTransformWidth, rectTransformWidth / aspectRatio);
else
rectTransform.sizeDelta = new Vector2(rectTransformHeight * aspectRatio, rectTransformHeight);
}
else {
Debug.LogError("Failed to load image: " + www.error);
}
}
