C#Script에서 Texture2D를 Redable로 변경합니까?
texture2D.EncodeToPNG();
↑ 항상 Error가 되는 사람.구글 선생님께 물어봐도 "Inspector 조작으로 해결할 수 있습니다."
아니오, 아니오, 저 혼자 Script로 해결하고 싶어요
이런 분들은 해보세요
• 콘솔에서의 오류
ArgumentException: Texture '' is not readable, the texture memory can not be accessed from scripts. You can make the texture readable in the Texture Import Settings.
유니티 공식?
보세요여기.
아니오, 해결되지 않을 것입니다
처리 방법
다음 방법 쓰면 오케이! Texture2D createReadabeTexture2D(Texture2D texture2d)
{
RenderTexture renderTexture = RenderTexture.GetTemporary(
texture2d.width,
texture2d.height,
0,
RenderTextureFormat.Default,
RenderTextureReadWrite.Linear);
Graphics.Blit(texture2d, renderTexture);
RenderTexture previous = RenderTexture.active;
RenderTexture.active = renderTexture;
Texture2D readableTextur2D = new Texture2D(texture2d.width, texture2d.height);
readableTextur2D.ReadPixels(new Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0);
readableTextur2D.Apply();
RenderTexture.active = previous;
RenderTexture.ReleaseTemporary(renderTexture);
return readableTextur2D;
}
호출자byte[] pngData = createReadabeTexture2D(notReadableTexture2D).EncodeToPNG();
더 깊이 들어가고 싶은 사람은 공식.
Texture와 관련된 것을 잘 이해하면 Unity에서 한 단계 올라갈 수 있습니다.
Reference
이 문제에 관하여(C#Script에서 Texture2D를 Redable로 변경합니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Katumadeyaruhiko/items/c2b9b4ccdfe51df4ad4a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Texture2D createReadabeTexture2D(Texture2D texture2d)
{
RenderTexture renderTexture = RenderTexture.GetTemporary(
texture2d.width,
texture2d.height,
0,
RenderTextureFormat.Default,
RenderTextureReadWrite.Linear);
Graphics.Blit(texture2d, renderTexture);
RenderTexture previous = RenderTexture.active;
RenderTexture.active = renderTexture;
Texture2D readableTextur2D = new Texture2D(texture2d.width, texture2d.height);
readableTextur2D.ReadPixels(new Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0);
readableTextur2D.Apply();
RenderTexture.active = previous;
RenderTexture.ReleaseTemporary(renderTexture);
return readableTextur2D;
}
byte[] pngData = createReadabeTexture2D(notReadableTexture2D).EncodeToPNG();
Reference
이 문제에 관하여(C#Script에서 Texture2D를 Redable로 변경합니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Katumadeyaruhiko/items/c2b9b4ccdfe51df4ad4a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)