From 945be36fea78635dc7a6119e976c4ebe77051b5f Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Wed, 25 Feb 2026 15:10:20 +0100 Subject: [PATCH] [unity] Fixed BlendModeMaterials ApplyMaterials ignoring sequence if Region already assigned. Closes #3033. --- .../Asset Types/BlendModeMaterials.cs | 19 ++++++++++--------- spine-unity/Assets/Spine/package.json | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/BlendModeMaterials.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/BlendModeMaterials.cs index e4e4ff203..197ea11fb 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/BlendModeMaterials.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Asset Types/BlendModeMaterials.cs @@ -270,17 +270,18 @@ namespace Spine.Unity { foreach (Skin.SkinEntry entry in skinEntries) { IHasTextureRegion renderableAttachment = entry.Attachment as IHasTextureRegion; if (renderableAttachment != null) { - if (renderableAttachment.Region != null) { + if (renderableAttachment.Sequence != null) { + TextureRegion[] regions = renderableAttachment.Sequence.Regions; + for (int i = 0; i < regions.Length; ++i) { + regions[i] = CloneAtlasRegionWithMaterial( + (AtlasRegion)regions[i], replacementMaterials); + } + if (regions.Length > 0) { + renderableAttachment.Region = regions[0]; + } + } else if (renderableAttachment.Region != null) { renderableAttachment.Region = CloneAtlasRegionWithMaterial( (AtlasRegion)renderableAttachment.Region, replacementMaterials); - } else { - if (renderableAttachment.Sequence != null) { - TextureRegion[] regions = renderableAttachment.Sequence.Regions; - for (int i = 0; i < regions.Length; ++i) { - regions[i] = CloneAtlasRegionWithMaterial( - (AtlasRegion)regions[i], replacementMaterials); - } - } } } } diff --git a/spine-unity/Assets/Spine/package.json b/spine-unity/Assets/Spine/package.json index 987c3c35d..94861664d 100644 --- a/spine-unity/Assets/Spine/package.json +++ b/spine-unity/Assets/Spine/package.json @@ -2,7 +2,7 @@ "name": "com.esotericsoftware.spine.spine-unity", "displayName": "spine-unity Runtime", "description": "This plugin provides the spine-unity runtime core and examples. Spine Examples can be installed via the Samples tab.", - "version": "4.3.47", + "version": "4.3.48", "unity": "2018.3", "author": { "name": "Esoteric Software",