Spriterenderのエフェクトを3Dのオブジェクトの手前に表示してえなあ、ということで、
エフェクトのレイヤー以外のすべてのレイヤーを映すメインのカメラ「Depthを0」に。
メインカメラと同じ位置、角度だがエフェクトのレイヤーのみを映すエフェクトカメラの「Depthを1」にしました。
ハートのエフェクトが地面に埋まっている状態なのがシーンビューで確認でき、ゲームビューではエフェクトの下半分が見えない状態です。
ここで表示しているオブジェクトMeshRenderで表示され、マテリアルは「default-Material」で、エフェクトはSpriteRenderで表示され、マテリアルは「Sprites-Default」です。
したがって、自分で書いたシェーダーが悪さをしたということはありません。
エフェクトのレイヤーは間違いなく、エフェクトカメラが映す唯一のレイヤーに設定されており、試しにカメラのDepthを「メインカメラがエフェクトカメラ」より大きい状態にすると、
シーンビューでのオブジェクトやエフェクトの位置は変わらないまま、ゲームビューではエフェクトは上記画像のような地中に埋まった状態ではなく、オブジェクトに隠れて表示されなくなります。
このことから、ドキュメントにもある「大きい値を持つカメラが、小さい値のカメラの手前に描画されます。」というDepthの説明に対する理解も間違っていないと思います。
ですが、実際に表示してみると、このようにエフェクトカメラのdepthの方が大きいのに、エフェクトが手前に表示されず、埋まった状態で表示されてしまいます。
こうなってしまう原因は何なのでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/08/21 03:55