2015-12-19 2 views
1

Я использую 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 это левый верхний (вниз).

Кто-нибудь знает, как я могу это исправить?

ответ

Смежные вопросы