はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】スクリプトからテクスチャの縦横の比率にUIを合わせる

はじめに

今回はテクスチャの縦横の比率にUIを合わせる方法についての記事になります!

以前ネット上からテクスチャを取得してみるという記事を書きました。

www.hanachiru-blog.com

ただこういった画像をそのままテクスチャに張り付けると、画像の縦横比がおかしなことになってしまうことがよくあります。

せっかくのリムジンも正方形のRawImageでは見栄えがよくありません。

f:id:hanaaaaaachiru:20190714211049p:plain

これを左から右へと変換する方法を紹介したいと思います。

やり方

今回はRawImageというuGUIを使っていますが、普通のImageもほぼ同様にすることができます。

using UnityEngine;
using UnityEngine.UI;

public class TextureTest : MonoBehaviour
{
    [SerializeField] private RawImage _image;

    void Start()
    {
        float rate = (float)_image.texture.width / _image.texture.height;
        float imageHeight = _image.rectTransform.sizeDelta.y;
        _image.rectTransform.sizeDelta = new Vector2(imageHeight * rate, imageHeight);
    }
}

このスクリプトで一番注意してほしいことは、rectTranformwidth・heightを変更するときだと思います。

www.hanachiru-blog.com

ここだけはやや直感的でないような気がするので要チェックです。