uGUIで画面レイアウトをしている最中、「Sceneビューではバッチリ表示されているのに、Gameビューで実行するとGameObjectが表示されない…」という現象に遭遇したことはありませんか?
問題の要因にはいくつかパターンがあり、気づかないと無駄に時間を浪費してしまいます。
今後同じ問題に当たった時のために、覚書として原因と対処法をまとめました。
目次
Gameビューでオブジェクトが消える主な原因
Sceneビューで見えているのにGameビューで見えない場合、主に「カメラの設定」か「座標・表示範囲」に原因が隠れています。以下のポイントを順番にチェックしてみてください。
1. Cameraの「Culling Mask」で除外されている
もっともよくある原因の一つが、Cameraの表示対象(Culling Mask)の設定ミスです。
- 原因:特定のLayerを持つGameObjectが、カメラの描画対象から外れている。
- 対処法:Main CameraのInspectorから
Culling Maskを確認し、対象のGameObjectに設定されたLayerにチェックが入っているか(またはEverythingになっているか)を確認しましょう。
2. Cameraの「Clipping Planes」の範囲外に配置されている
カメラには、オブジェクトを描画する「距離」の限界が設定されています。
- 原因:GameObjectがカメラに近すぎる(Near未満)、または遠すぎる(Far以上)位置にある。
- 対処法:CameraのInspector内にある
Clipping PlanesのNearとFarの数値を調整するか、GameObjectのZ座標(奥行き)をカメラの描画範囲内に収まるよう修正します。
3. CanvasのRender Modeとカメラの紐付け忘れ(uGUIの場合)
uGUIのUIパーツが表示されない場合、Canvas自体の設定が原因のケースが非常に多いです。
- 原因:CanvasのRender Modeを
Screen Space - Cameraなどにしているにも関わらず、Render Cameraにカメラが割り当てられていない。 - 対処法:CanvasのInspectorを確認し、
Render Cameraの項目に現在のカメラ(Main Cameraなど)をドラッグ&ドロップでアタッチしてください。
4. Transformの座標(X, Y, Z)のズレと画面アスペクト比
Sceneビューは自由に視点を動かせますが、Gameビューは固定されたカメラからの視点です。
- 原因:平面座標(X, Y)や奥行き(Z)がカメラの枠外に出ている。特に、Gameビューの解像度(アスペクト比)を変更した際に、UIやオブジェクトが画面外に押し出されることがあります。
- 対処法:対象のGameObjectを選択し、Transformのポジションをリセットするか、Gameビューの解像度設定(Free Aspectなど)を実際の想定デバイスに変更して見え方を確認します。
5. 複数カメラの「Depth」による描画順の問題
シーン内に複数のカメラが存在する場合に起こりやすいトラブルです。
- 原因:UI用カメラとメインカメラなど、複数カメラの
Depth(描画優先度)の順序が間違っており、背景用カメラが手前のオブジェクトを上書きしてしまっている。 - 対処法:前面に表示したいカメラ(UIなど)の
Depthの数値を、背面にしたいカメラよりも大きく設定します。
まとめ
SceneビューとGameビューで見え方が違う場合、まずは「カメラからどう見えているか(範囲、レイヤー、奥行き)」を疑うのが解決への近道です。
これで無駄な時間浪費を避け、快適なUnity開発を進めていきましょう!
そのほかのUnity記事
-
uGUI
【Unity】Sceneビューで見えるのにGameビューで表示されない!原因と対処法まとめ
-
uGUI


【Unity】OnCollisionEnter2Dが呼ばれない!2D物理演算の衝突判定における原因と解決法
-
Android


UnityとAndroidネイティブの連携:UnitySendMessageの引数を使う
-
Rider


RiderでCannot Resolve Symbol
-
uGUI


【Unity】Image(Script)のSourceImageを変更する
-
Android


UnityとAndroidのデータ保存領域・パス取得方法まとめ
-
C#


【Unity】ParticleSystemで描画座標がズレてしまう時は
-
UNET


【Unity】IndexOutOfRangeException: NetworkReader:ReadBytes out of range
-
Asset


symlinkが含まれるUnitySDKを導入する時にGUIDが更新され続ける場合の対処
-
Unity


UnityでInvalid build path エラー
-
Android


【Unity/Android】エラー: パッケージ “com.unity3d.player” は存在しません
-
Animator


【Unity】Animatorの更新タイミングを変更する



