因为之前写过自适应后截图区域遇到无法截取像素的问题,后来解决掉了,就是根据屏幕计算一个比例,详细的看之前的文章。
这次遇到的双屏截图有问题,问题描述大概如下:
上边有个大屏幕,然后场景摄像机,ui等,
上边的大屏幕主要是轮播图,下边的摄像机看场景和ui交互等,大屏的canvas设置的display2,下边的是display1,包括摄像机都是display1.,遇到的问题是截图时候截图是大屏上的内容。因为之前没问题,是因为之前大屏显示的有问题,貌似是更新的驱动,导致今天出现了问题。以前截图方法是直接区域取像素。
Rect position = new Rect(x, y, width, height);
shot.ReadPixels(position, 0, 0);
shot.Apply();
主要的方法就是这个。目前多屏的解决办法是,生成一个rendertex,然后再这个rendertex上去取像素。然后再删掉。具体办法是:
RenderTexture rt = new RenderTexture((int)width, (int)height, 0);
Camera.main.targetTexture = rt;
Camera.main.Render();
RenderTexture.active = rt;
Texture2D screenShot = new Texture2D((int)width, (int)height, TextureFormat.RGB24, false);
screenShot.ReadPixels(new Rect(new Vector2(0,0),new Vector2(width,height)), 0, 0);
screenShot.Apply();
Camera.main.targetTexture = null;
RenderTexture.active = null;
GameObject.Destroy(rt);