はじめに
UnityでゲームUI(ユーザーインターフェース)を作ろうとして、Canvasにテキストや画像を挿入したときに、
**「UIがめちゃくちゃ大きくて、MainCameraとサイズが合っていない!」**と困ったことはありませんか?
私もまさにその状態になり、SceneビューではUIが表示されるのに、Gameビューでは全く見えないという現象に遭遇しました。
そこで今回は、Canvasの表示スケールとMainCameraの整合性を取る方法を紹介します。
症状:UIが画面からはみ出す or ゲームビューに表示されない
- Canvasに配置したボタンやテキストが、SceneビューにはあるのにGameビューでは消えている
- MainCameraとCanvasのスケールが極端に違って見える
- 「なんでこんなにCanvasが大きいの?」と思ってしまう
解決方法:Canvasの「Render Camera」にMainCameraを指定する
この問題の原因は、Canvasの描画モード(Render Mode)が「Screen Space – Overlay」になっていることが多いです。
解決手順:
- Canvasオブジェクトを選択
- インスペクターウィンドウで「Render Mode」を「Screen Space – Camera」に変更
- 「Render Camera」の項目が出てくるので、Main Cameraをドラッグ&ドロップでアタッチ
- 必要に応じて「Plane Distance」や「Canvas Scaler」も調整
なぜこれで解決するのか?
デフォルトの 「Screen Space – Overlay」 は、カメラに依存せず画面全体にUIを描画します。
そのため、カメラとCanvasのスケールがバラバラになりがちで、表示位置がずれることがあります。
一方で、**「Screen Space – Camera」**に変更し、Render CameraをMainCameraに指定することで、
UIがカメラの視野に合わせて描画されるようになり、スケールや表示のズレがなくなります。
補足:GameビューでUIが表示されなかった問題も同時に解決
この設定を行ったことで、私の環境では以下の問題も解決しました:
- SceneビューではUIが見えるのに、Gameビューに切り替えるとUIが消えてしまう現象
つまり、Canvasがカメラの視野外にあったということが原因だったようです。Render Camera
を指定することで、正しくUIがカメラ内に表示されるようになりました。
まとめ
UnityでCanvasが大きすぎる / UIがGameビューに表示されないといったトラブルに遭遇した場合は、
まずCanvasのRender Mode
とRender Camera
の設定を確認してみましょう。
ポイント:
- CanvasのRender Modeを「Screen Space – Camera」に変更
- Render Cameraに「Main Camera」を指定
- GameビューでUIが正しく表示されるか確認
この設定ひとつで、UIのスケール問題が一気に解決することがあります。
少しでも参考になれば幸いです。