//根据图片尺寸设置imageUV,避免图片变形
public static void SetImageUV(Texture2D texture, RawImage image, bool widetexCut = true/*false不处理横图*/)
{
float imageHw = image.rectTransform.rect.height / image.rectTransform.rect.width;//item 宽高
float textureHw = texture.height / (float)texture.width; // 图片的高宽
image.texture = texture;
if (textureHw < 1 && widetexCut == false)
{
return;
}
var rate = imageHw / textureHw;
if (rate > 1)
{
image.uvRect = new Rect((1 - (1 / rate)) / 2, 0, 1 / rate, 1);
}
else if (rate < 1)
{
image.uvRect = new Rect(0, (1 - rate) / 2, 1, rate);
}
}