Unity3D黑屏截屏

Unity3D Black screen capturing screenshot

我正在使用

截屏
Texture2D tex = new Texture2D(width,height);
Rect textureRect = new Rect(0,0,width,height);
tex.ReadPixels(textureRect,0,0);
tex.Apply();

它工作正常。但是,当我在相机上应用 Unity Standard Assets 中提供的模糊或光晕等图像效果时,捕获的屏幕截图是黑色的。我不懂为什么。有人可以帮我吗?

使用Application.CaptureScreenshot截图。

Application.CaptureScreenshot("Screenshot.png");

如果你想在游戏中显示它,我建议使用 RenderTexture,我认为它从 Unity5 开始免费提供。

您应该尝试在任何组件的 OnPostRender() 上调用它。

您也可以 运行 您的捕获代码位于:Camera.OnRenderImage(RenderTexture,RenderTexture)

Unity3D 引擎在所有渲染完成并且我们在屏幕上显示最终图像后调用此方法。

您需要为其创建组件并将其附加到相机。

http://docs.unity3d.com/ScriptReference/Camera.OnRenderImage.html