diff --git a/spine-unity/Modules/com.esotericsoftware.spine.on-demand-loading/Editor/GenericOnDemandTextureLoaderInspector.cs b/spine-unity/Modules/com.esotericsoftware.spine.on-demand-loading/Editor/GenericOnDemandTextureLoaderInspector.cs index f9168ce72..c5845ba72 100644 --- a/spine-unity/Modules/com.esotericsoftware.spine.on-demand-loading/Editor/GenericOnDemandTextureLoaderInspector.cs +++ b/spine-unity/Modules/com.esotericsoftware.spine.on-demand-loading/Editor/GenericOnDemandTextureLoaderInspector.cs @@ -206,13 +206,21 @@ namespace Spine.Unity.Editor { Texture2D texture2D = AssetDatabase.LoadAssetAtPath(texturePath); if (texture2D) { Color[] maxTextureSizePixels = texture2D.GetPixels(); - texture2D.SetPixels(maxTextureSizePixels); - var bytes = texture2D.EncodeToPNG(); + // SetPixels works only for non-compressed textures using certain formats. + var nonCompressedTexture = + new Texture2D(texture2D.width, texture2D.height, TextureFormat.RGBA32, false); + + nonCompressedTexture.SetPixels(maxTextureSizePixels); + + var bytes = nonCompressedTexture.EncodeToPNG(); string targetPath = Application.dataPath + "/../" + texturePath; System.IO.File.WriteAllBytes(targetPath, bytes); - texture2D.Apply(updateMipmaps: true, makeNoLongerReadable: true); - EditorUtility.SetDirty(texture2D); + + importer.isReadable = false; + importer.SaveAndReimport(); + + EditorUtility.SetDirty(nonCompressedTexture); AssetDatabase.SaveAssets(); } }