Dynamically fit uGUI Image to the screen. You can select Stretch, Fit, Fill.
tags: Unity uGUI
- unity 2022.3.51f1で動作確認しました。
画面への合わせ方として、以下の3種類が考えられます。
名称 | イメージ | 説明 |
---|---|---|
Stretch 伸縮 |
縦横比を無視して、画面いっぱいに拡縮する | |
Fit 内接 |
縦横比を保ち、画像全体が表示されるように拡縮する 画像と画面端に隙間ができる |
|
Fill 外接 |
縦横比を保ち、画面に隙間なく表示されるように拡縮する 画像が画面からはみ出す |
「Stretch - 伸縮」と「Fit - 内接」は、unityの標準機能だけで容易に実現できますね。
RectTransformを、ルートCanvasの外周に沿って拡縮するように設定して、ImageのPreserv Aspectをチェックすると「Fit」、チェックしなければ「Stretch」になります。
また、こうするだけで、スマホの回転時などに生じる画面サイズ変化にも対応できます。
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)も参考にしてください。