Unity RenderTexture坐标系原点位于iPad的左下方,但在iPhone 5S左上角

时间:2015-12-19 00:58:40

标签: ios iphone unity3d textures coordinate-systems

我使用RenderTexture在我的Unity游戏中截取屏幕截图。

我已成功设法将相机内容绘制到目标RenderTexture并使用以下代码获取部分RenderTexture内容(即:感兴趣区域):< / p>

RenderTexture currentActiveRT = RenderTexture.active;

var renderTex = new RenderTexture ((int)renderTexSize.x, (int)renderTexSize.y, 24, RenderTextureFormat.ARGB32);

CameraScreenshot.targetTexture = renderTex;
CameraScreenshot.gameObject.SetActive (true);
CameraScreenshot.Render ();

RenderTexture.active = renderTex;

// 4. Create the final output Texture, which will have the the ROI drawn in the final size.
var tex = new Texture2D ((int)screenshotSize.x, (int)screenshotSize.y, TextureFormat.RGB24, false);
tex.ReadPixels (fROI, 0, 0, true);

// 5. Restore context and release resources.
RenderTexture.active = currentActiveRT;

Unity Editor和iPad设备上的一切都按预期工作,但是,在我的iPhone 5S设备上,最终输出错误,因为使用了RenderTexture的不同区域。经过一些调试后,我意识到在编辑器和iPad上RenderTexture坐标系的原点是左下角(向上),但在iPhone上它是左上角(向下)。

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)