発生した現象
Android用にビルドしたアプリを実機で起動するとゲームオブジェクトが非表示の状態になる。
現象を分析すると以下になります。
・Unity(PC)・エミュレーター上ではゲームオブジェクトが表示される
・実機で実行するとゲームオブジェクトが表示されない
・生成されていないわけではなく存在はしている
原因を調査
始めはオクルージョンカリングが悪さをしているんじゃないかと考えました。
しかし、Bake後のデータを削除しても変化はなし。
作業のログを調べている中で、
ゲーム処理を軽くするために最適化を行ったのが原因じゃないかと考えました。
BuildSettings内のPlayerSettingsをクリックするとProjectについて設定を変更できるので、
過去の設定と見比べてみました。
解決法
赤枠のチェックボックスが逆に設定されていたのが問題でした。
下のようにチェックを入れれば通常通り表示されました。
Use 32-bit Display Buffer
コンピュータのメモリの中で、一画面分の表示状態を丸ごと保存しておく領域のことです。画面に何かを描画する際にはまずディスプレイバッファの内容を書き換え、一定のタイミングでディスプレイバッファの内容がディスプレイ等の表示装置に送信されて表示内容が更新されます。
Unityで制作したゲームを公開するために必要な設定「Player Settings」を徹底解説(Android版) – 夜更かし工房 Player Settingsって何? Player Settings の使い方 Player Settings の設定項 unitynightowlgames.hatenablog.com
Disable Depth and Stencil
描画する際にステンシルバッファを参照し、画面には映らない無駄な描画をピクセル単位でスキップすることができます。
Unityで制作したゲームを公開するために必要な設定「Player Settings」を徹底解説(Android版) – 夜更かし工房 Player Settingsって何? Player Settings の使い方 Player Settings の設定項 unitynightowlgames.hatenablog.com
まとめ
原因:Disable Depth and Stencilをチェックしていた
解決法:Disable Depth and Stencilのチェックを外す
この問題の1番困ることは、
PC・エミュレーター上では通常通りにゲームオブジェクトが表示されるというところだと思います。
このような現象に出会った読者のお役に立てれば幸いです。
コメント