问题:Texture.ReadPixels使用时,会提示红字的错误,如下图。
解决:错误提示的内容是ReadPixels只能在系统框架缓冲区读取,否则就会出错,意思应该是从要等摄像机渲染完,再从帧上截图,经测试可以在以下两个地方运行。(不知道理解对不对,希望有大神指导一下)
1、在摄像机挂载脚本,使用unity 自带函数,OnPostRender(),即相机完成渲染后触发的ReadPixels的截图,该函数只能在挂载摄像机脚本内使用。详情参照官网api文档:https://docs.unity3d.com/ScriptReference/index.html,建议下载安装时要装上,方便查询。如下图。
2、新建一个协程,使用yield return new WaitForEndOfFrame(),在其后面再使用ReadPixels截图,如下图。
1.10,补充:如果使用了ReadIPixels截图,导出安卓版后,华为手机,会出现材质球黑色,也是红字这个问题。但提示红字不解决,有时候PC和IOS也不会出现问题,但最好还是解决了。