この前初めてUnityでゲームを作りました。
作ったゲームはUnityのシュミレーター上では問題なく画面が見えるのに対し、 Xcodeでビルドして実機で操作しようとすると画面が真っ白で見辛くなってしまいます。
この問題を解決したいです。
具体的には、
ゲームのシーンは2つで、メニュー画面とプレイ画面の構成です。
メニュー画面は問題なく映るのですが、プレイ画面に移動した途端、真っ白でうっすら画面は見える状態になります。プレイは問題なくできます。
これはXcodeでよくあるバグなのでしょうか?
また、問題なく画面が映る方法を知りたいです。
どなたか分かる方がいましたらよろしくお願いします。
コードを提示しよう
回答ありがとうございます。
すいません。
どのコードでエラーが起きているのかわからなくて、どれを記載すれば良いか判断がつかない状態です。
やはりプログラムに問題があるためこのような結果になったのでしょうか?
この手の問題はいろいろな要因が考えられると思うので、単純にコード出せば解決するものでもないですね。
現象が再現する最小のプロジェクトを用意することは可能ですか?
回答ありがとうございます。
直し方はXcodeでどうこうというより、Unity側のプログラムのエラーと思われる箇所を改善する方法が一番ですかね?
最小のプロジェクト用意しようと思います。
描画周りの問題なので、Unityでのプログラム側に問題があると予想しています(場合によってはUnityエンジン側のバグという可能性もなくはないです)
画像を添付しました。
メニュー画面からプレイ画面に遷移した時に、上記の画像のようになってしまいます。
内容は上から障害物のUIを出して、それをプレイヤーが避けていくというゲームです。
このバグの戦い方を知りたいです。
プログラムを遡って、いつバグが発生するか調査していくしかないでしょうか?
これ正解はどういう表示になるんですかね?
それとの差もデバッグの際の重要な情報になるので、Editor上での表示も載せてほしいです。
バグとの戦い方について、ちょっとした持論をここに書いておきます(回答ではないのでここで)
デバッグの方法はバグの出方によって微妙に異なります。
殆どの場合では例外という形でロジックエラーが出てくるので、例外のスタックトレースを基に付近のコードにロジックエラーがないかを探すことから始めます。
ただ、例えば今回のように計算結果は出てくるけどそれがおかしいという場合は、どこでエラーが出ているのかの情報がないので基本的にはロジックを再確認し、プログラムがそれに沿って正しく実装されているかを順番に確認することになります。
こういった場合に使えるのがいわゆる「ステップ実行」というやつで、プログラムを1行ずつ実行しながら途中の変数の内容を確認してどこで計算結果が狂ったかを探すことができます。
で、もう一つものすごく厄介なのが今回の可能性としてある「外部のプログラムを使っていて、そこにバグ/未対応部分がある場合 あるいは使い方が間違っている場合」で、使い方が間違っているなら単純にドキュメント読んで直してもらえばよいのですが、そうでない場合は自身で対処する方法がありません。バグまたは未実装であろうという証拠を収集して報告するのが唯一できることになります。
この場合、見えないコードに対してデバッグを行うことになりますが、ここで活きるのが「基礎力」というか、ほぼ同じことをするコードの実装経験になります。ちなみに基礎力は見えないコードに対する処方箋だけではなく、自身で書いたものに対してもバグとなる箇所の「あたり」をつけるのにも使える能力になります。
長々と書きましたが、バグとの戦い方はまずは「基礎力」をつけ、デバッガの使い方を学ぶところから始めると良いと思います。いきなり新しいものを作るのも良いですが、車輪の再発明もきっと力になるはずです。
(とはいえゲームプログラムでそれやるとだいぶハードな道になるんですが……)

あなたの回答
tips
プレビュー