Awesome
FitForScreen uGUIのImageを画面にフィットさせる
Dynamically fit uGUI Image to the screen. You can select Stretch, Fit, Fill.
tags: Unity uGUI
前提
- unity 2022.3.51f1で動作確認しました。
「画面にフィットさせる」とは?
画面への合わせ方として、以下の3種類が考えられます。
名称 | イメージ | 説明 |
---|---|---|
Stretch<br>伸縮 | 縦横比を無視して、画面いっぱいに拡縮する | |
Fit<br>内接 | 縦横比を保ち、画像全体が表示されるように拡縮する<br>画像と画面端に隙間ができる | |
Fill<br>外接 | 縦横比を保ち、画面に隙間なく表示されるように拡縮する<br>画像が画面からはみ出す |
Stretch / Fit の場合
「Stretch - 伸縮」と「Fit - 内接」は、unityの標準機能だけで容易に実現できますね。
RectTransformを、ルートCanvasの外周に沿って拡縮するように設定して、ImageのPreserv Aspectをチェックすると「Fit」、チェックしなければ「Stretch」になります。
また、こうするだけで、スマホの回転時などに生じる画面サイズ変化にも対応できます。
Fill の実現
使い方
Package Manager
>Add package from git URL...
で以下を入力します。
https://github.com/tetr4lab/FitForScreen.git?path=/Assets/FitForScreen
- シーンのオブジェクトに、"FitForScreen"スクリプトをアタッチしてください。
- インスペクタでImageを設定し、Methodを選んでください。
- 必要に応じて、以下の名前空間を導入してください。
using Tetr4lab.UnityEngine.UI;
- 画面サイズやMethodの変化にも対応しています。
- サンプル(SampleScene)も参考にしてください。