Делаю скриншот в png,
картинка слева - так отображается в Unity и в BlueStacks (с прозрачностью, как должно быть),
картинка справа - на андроиде (черный фон).
Может кто сталкивался с подобной проблемой?
Синтаксис:
Используется csharp
private void OnPostRender()
{
if (takeScreenshotOnNextFrame)
{
takeScreenshotOnNextFrame = false;
RenderTexture renderTexture = myCamera.targetTexture;
Texture2D renderResult = new Texture2D(renderTexture.width, renderTexture.height, TextureFormat.ARGB32, false);
Rect rect = new Rect(0, 0, renderTexture.width, renderTexture.height);
renderResult.ReadPixels(rect, 0, 0);
renderResult.name = Core.I.Player.Name + "AvatarHero";
Debug.Log(Hero);
SaveSpriteToFile(renderResult);
Debug.Log("Saved CameraScreenshot.png");
Debug.Log($"Attached Screen: '{renderResult.name}' to Canvas");
RenderTexture.ReleaseTemporary(renderTexture);
myCamera.targetTexture = null;
}
}
public void TakeScreenshot(int width, int height)
{
myCamera.targetTexture = RenderTexture.GetTemporary(width, height, 24);
takeScreenshotOnNextFrame = true;
}
{
if (takeScreenshotOnNextFrame)
{
takeScreenshotOnNextFrame = false;
RenderTexture renderTexture = myCamera.targetTexture;
Texture2D renderResult = new Texture2D(renderTexture.width, renderTexture.height, TextureFormat.ARGB32, false);
Rect rect = new Rect(0, 0, renderTexture.width, renderTexture.height);
renderResult.ReadPixels(rect, 0, 0);
renderResult.name = Core.I.Player.Name + "AvatarHero";
Debug.Log(Hero);
SaveSpriteToFile(renderResult);
Debug.Log("Saved CameraScreenshot.png");
Debug.Log($"Attached Screen: '{renderResult.name}' to Canvas");
RenderTexture.ReleaseTemporary(renderTexture);
myCamera.targetTexture = null;
}
}
public void TakeScreenshot(int width, int height)
{
myCamera.targetTexture = RenderTexture.GetTemporary(width, height, 24);
takeScreenshotOnNextFrame = true;
}