Я использую RenderTexture, чтобы делать скриншоты в моей игре Unity.Происхождение системы координат Unity RenderTexture находится внизу слева на iPad, но сверху слева на iPhone 5S
Я успешно удалось привлечь содержимое камеры к целевой RenderTexture
и захватить часть ее содержания RenderTexture
«s (т.е. область интереса), используя код ниже:
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, так и в устройстве iPad, на моем устройстве iPhone 5S конечный результат становится неправильным, потому что используется другая область RenderTexture
. После некоторой отладки я понял, что на обоих редакторах и iPad источник координат RenderTexture
- внизу слева (вверх), но на iPhone это левый верхний (вниз).
Кто-нибудь знает, как я могу это исправить?