Unityゲーム作成で、カメラのサイズを調整するメモです。
主にスマートフォンゲームで使えそうな感じのものです。
はじめに
「Unity 2021.3.3f1」ヴァージョンで作成、2Dゲームを例としています。
スクリプトで「カメラサイズを調整する」メモみたいなものです。
カメラ表示範囲調整
下記で「カメラの表示範囲を調整する方法」を書きました。下記の表示範囲調整の場合、縦にも横にも「余白」が発生する可能性があります。
今回は、カメラのサイズを変更して様々な解像度に対応していきます。余白を出したくない場合の方法と言う感じです。(他にも対応方法は沢山あるのであくまでも一例です)
調整開始
まずはスマートフォンの縦画面を想定した画面を用意。
以前作成した2Dシューティングを利用して対応してみます。
9:16の縦画面だと問題なく表示されています。

しかし、デバイスによっては下記の様に表示されてしまいます。

これをカメラの表示範囲調整で対応した場合、下記の様に表示されます。ちょっと横の余白が気になる感じです。

ここで、カメラの背景色を変更。作業画面ではいい感じになります。

実行すると、やはり余白が気になります。

カメラのサイズ変更
カメラの表示範囲を調整するのではく、カメラのサイズ(拡大/縮小)変更を行い対応してみます。
カメラにアタッチしているスクリプトを下記内容に変更。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class AdjustCamera : MonoBehaviour { [SerializeField] private Camera _Camera; [SerializeField] private Vector2 _aspectVec2; [SerializeField] private float _pixelPerUnit; void Start() { float screenW = (float)Screen.width; float screenH = (float)Screen.height; _Camera.orthographicSize = screenH / (screenW / (_aspectVec2.x / _pixelPerUnit)) / 2; } }
下記の様にパラメータを設定。今回は、カメラサイズが5を基本に作成してあるので、Y軸1600の半分の800になるように、パラメータには160をセット(5×160=800)。

例えば、Sizeを800で画面作成していればPixelPerUnitのパラメータ値は1です。
この辺の細かいことは下記の公式リファレンス参考。
実行画面
スクリプトを変更して実行すると、画面が縦長の場合はカメラを引き、横長の場合はアップになる感じです。
