在Unity中截取部分区域的屏幕截图?

Taking screenshot of partial area in Unity?

我的游戏可以让你装扮你的角色。我想将该图像(而不是 800x600 屏幕的其余部分)保存到一个文件中。根据帮助,我可以使用 Application.CaptureScreen() 来捕获整个屏幕,但是如何只捕获其中的一部分?

如果您想完全控制要截屏的区域,我建议设置一个带有 RenderTexture 的新相机。这将启用一种更灵活的方式来控制屏幕截图的构图。就像 Xbox360 上的 Avatar Creator。

  1. 创建一个新相机并将其对齐以适合所选的图像和构图。
  2. 添加一个RenderTexture
  3. 使用 ReadPixels 从 RenderTexture 读取到 Texture2D 并使用 EncodeToPNG.
  4. 保存
  5. 保存到磁盘或上传到服务器

http://docs.unity3d.com/Manual/class-RenderTexture.html

http://docs.unity3d.com/ScriptReference/Texture2D.EncodeToPNG.html