Unity 画像比率

画像読み込んで、画面に合わせる

using UnityEngine;
using UnityEngine.UI;

public class Aspect : MonoBehaviour
{
    [SerializeField] Image image = default;
    [SerializeField] string resourceName = default;
    [SerializeField] Button aspectButton = default;
    [SerializeField] Button resourceButton = default;
    RectTransform rectTransform;
    RectTransform imageRectTransform;

    void Awake()
    {
        rectTransform = transform as RectTransform;
        imageRectTransform = image.transform as RectTransform;
        aspectButton.onClick.AddListener(() => UpdateAspect());
        resourceButton.onClick.AddListener(() => {
            image.sprite = Resources.Load<Sprite>(resourceName);
        });
    }

    void UpdateAspect()
    {
        image.SetNativeSize();
        var size = rectTransform.sizeDelta;
        var imageSize = imageRectTransform.sizeDelta;
        var isVertical = imageSize.y > imageSize.x;
        if (isVertical)
        {
            var ratio = size.y / imageSize.y;
            var w = imageSize.x * ratio;
            // 縦固定、横調整
            imageRectTransform.sizeDelta = new Vector2(w, size.y);
        }
        else
        {
            var ratio = size.x / imageSize.x;
            var h = imageSize.y * ratio;
            // 横固定、縦調整
            imageRectTransform.sizeDelta = new Vector2(size.x, h);
        }
    }
}