トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

SourceImageにセットした画像を縦横比を保ったまま左詰めで配置する【Unity】

SourceImageにセットした画像を、元の画像サイズのまま、左詰めで配置したい。

f:id:bibinbaleo:20200527104204p:plain

何も設定しないと、Imageコンポーネントを付けたRectTransformの大きさにSourceImageが変更されてしまう。

f:id:bibinbaleo:20200527103945p:plain

SorceImageが固定なら、SourceImageの大きさに合わせたらいいけど、SourcecImageが変わると元のSourceImageの大きさが保たれない。

設定

1.Imageコンポーネントの設定でPreserveAspectにチェックを入れる。

f:id:bibinbaleo:20200527104019p:plain

これにチェックを入れるとImageコンポーネントのサイズによらず、元の画像の縦横比で範囲内に配置される。ただしこのままだと真ん中に表示される。

f:id:bibinbaleo:20200527104022p:plain

2.Pivotを左端にする

真ん中の〇を動かす

f:id:bibinbaleo:20200527104204p:plain

Pivotを動かすには左上のをPivotにしないといけない。

f:id:bibinbaleo:20200527104207p:plain

これでどんな画像がSourceImageに来ても、元画像の縦横比保ったまま左詰めで範囲内に配置される!

f:id:bibinbaleo:20200527104350p:plain

スクリプトからSourceImageを変える

m_Image.sprite = m_Sprite;

でできる。

docs.unity3d.com