3Dゲームを作っていて、その画面の上に2Dのスプライトを表示したいことがあります。そのときにsprite.Begin()とsprite.End()で囲んだりするのですが、そうして2Dスプライトを表示した後に、3Dのモデルのテクスチャがちゃんと表示されないことがあります。そんなときに、次の5行をsprite.End()の後に付け足してみよう(参考)。今の私の知識では、おまじない(深度バッファが無効とか、レンダーステートとかのお話のようです)。ちゃんとテクスチャが表示されるようになりました。
GraphicsDevice.RenderState.DepthBufferEnable = true;
GraphicsDevice.RenderState.AlphaBlendEnable = false;
GraphicsDevice.RenderState.AlphaTestEnable = false;
GraphicsDevice.SamplerStates[0].AddressU = TextureAddressMode.Wrap;
GraphicsDevice.SamplerStates[0].AddressV = TextureAddressMode.Wrap;