質問: ### 前提・実現したいこと 今日、Unityデビューしたプログラミング自体超初心者です 今、いたのくまんぼうさんのUnityの寺子屋という本を読みながら勉強をしています。 今回の質問の目的は、オブジェクトをバックグラウンドより手前に持ってきたいです。 ### 発生している問題・エラーメッセージ ``` チャプター1で、ゲームオブジェクトを動かす事にチャレンジしました。しかし、ゲーム再生ボタンを押すと、バックグラウンドの青い背景が一面に出てきてオブジェクトが見えなくってしまいました。 オブジェクトの座標を確認したところ、予定通りオブジェクトは背景の後ろで動いている様なのですが、とにかくオブジェクトに被ってしまっているため見えません。 ``` ### 該当のソースコード ``` C# ``` ### 試したこと 自分の記入した処理の書き直したしました。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: 2Dプロジェクトにおける「スプライトの描画順」の問題ですね。 > > Spriteの描画順は、基本的に > > > Sorting Layer > > Order In Layer > > カメラに近い順 > > > で判断されています。 > > テラシュールブログ | 【Unity】スプライトの描画順を「下にある物を手前」にする > > > シーンビュー(Unityエディタ)操作時は問題なく、ゲーム実行時に順番が変わってしまったとのことですので、ゲームオブジェクトを動かす処理でZ軸座標に変化を与えてしまっているのではないでしょうか。 問題の背景スプライトのZ座標を変えてみたり、Order In Layerの値を小さく(-1など)することで解決できませんか? 他に、ゲーム画面全体のスプライトに対してカメラの位置が逆に配置してしまっていたりするかもしれません。 2Dプロジェクトですが、シーンビューは3Dに切り替えて表示させることもできます。そちらで位置関係を一度確認してみるといいかもしれません。