关于unity 双屏或者多屏幕截图问题

因为之前写过自适应后截图区域遇到无法截取像素的问题,后来解决掉了,就是根据屏幕计算一个比例,详细的看之前的文章。
这次遇到的双屏截图有问题,问题描述大概如下:
上边有个大屏幕,然后场景摄像机,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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值