C#Script에서 Texture2D를 Redable로 변경합니까?

6044 단어 UnityTexture2D
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에서 한 단계 올라갈 수 있습니다.

좋은 웹페이지 즐겨찾기