我们在Unity3D上开发一个应用程序,它将从屏幕上获取图像并将其传输到Texture2D。 我们在平均(虚弱)设备上的性能遇到困难。
代码如下。我们做了一个截图,然后我们读取像素(ReadPixels) - 这里出现问题,应用程序运行非常缓慢。RenderTexture到Texture2D非常缓慢
我们尝试从相机中取出纹理,但它不起作用,因为我们的扫描仪与Kudan平行工作,并且反过来阻止了对相机的访问。然后,我们试图限制屏幕的扫描区域(通过扫描一个小窗口,但不是全屏) - 但没有明显的性能提升。
任何人都可以帮忙吗?
这里是我们的代码:
IEnumerator DecodeScreen()
{
yield return new WaitForEndOfFrame();
RenderTexture RT = new RenderTexture(Screen.width, Screen.height,24);
Texture2D screen = new Texture2D(RT.width, RT.height, TextureFormat.RGB24, false, false);
screen.ReadPixels(new Rect(0, 0, RT.width, RT.height), 0, 0);
screen.Apply();
Debug.Log(resultText.text);
GetComponent().targetTexture = null;
Destroy(RT);
}