C# XNA 4.0 SetRenderTarget结果显示为全紫色屏幕

C# XNA 4.0 SetRenderTarget结果显示为全紫色屏幕,c#,xna,xna-4.0,spritebatch,C#,Xna,Xna 4.0,Spritebatch,我目前正在用XNA为我的个人项目制作一个2D侧滚游戏。我目前的目标是与着色器一起享受乐趣。但是我实际上被SetRenderTarget(RenderTarget2D)方法卡住了,我不明白为什么一旦我调用它,游戏就会出现一个完整的紫色屏幕 我到处搜索,仍然不知道问题出在哪里,但我想这可能是因为我开始spritebatch的方式 public void Draw(GraphicsDevice graphics, SpriteBatch spriteBatch, RenderTarget2D main

我目前正在用XNA为我的个人项目制作一个2D侧滚游戏。我目前的目标是与着色器一起享受乐趣。但是我实际上被SetRenderTarget(RenderTarget2D)方法卡住了,我不明白为什么一旦我调用它,游戏就会出现一个完整的紫色屏幕

我到处搜索,仍然不知道问题出在哪里,但我想这可能是因为我开始spritebatch的方式

public void Draw(GraphicsDevice graphics, SpriteBatch spriteBatch, RenderTarget2D mainScene)
    {
        graphics.SetRenderTarget(mainScene);
        graphics.Clear(Color.Black);
        spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null, _camera.GetViewMatrix(Parallax));

        foreach(Sprite sprite in Sprites)
            sprite.Draw(spriteBatch);

        spriteBatch.End();
        graphics.SetRenderTarget(null);            
    }

有什么想法吗?提前感谢:)

您绘制的是渲染目标,而不是BackBuffer。在BackBuffer中不绘制任何内容时,默认为紫色。在RenderTarget设置为null时进行绘制,以绘制到BackBuffer,该BackBuffer指示您在屏幕上看到的内容。渲染目标用于在屏幕外绘制对象