RenderTexture截图
1.原理
通过Texture2D的ReadPixels方法将读取RenderTexture数据,据此创建一个Sprite。
2.代码
//RenderTexture
public RenderTexture mainPadTexture;
//要填充的Image
public Image screenTexturImage;
//读取大小
private Rect screenShotSize;
public void GetASnap()
{
//获取大小
screenShotSize = new Rect();
screenShotSize.x = 0;
screenShotSize.y = 0;
screenShotSize.width = mainPadTexture.width;
screenShotSize.height = mainPadTexture.height;
//if (this.gameObject.activeSelf)
{
//激活当前的渲染贴图
RenderTexture.active = mainPadTexture;
//创建2d纹理
Texture2D screenShot = new Texture2D((int)screenShotSize.width, (int)screenShotSize.height, TextureFormat.RGB24, false);
//读取
screenShot.ReadPixels(screenShotSize, 0, 0);
screenShot.Apply();
//创建精灵
Sprite spr = Sprite.Create(screenShot, screenShotSize, Vector2.zero);
screenTexturImage.sprite = spr;
}
}
RenderTexture太暗
在RenderTexture的Inspector面板中,勾选sRGB(Color RenderTexture)选项。