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); } } }