From f4ebfdb61ee6f6ab54a1c1c4c449c423fb7cab7d Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Fri, 7 Jun 2024 14:58:04 +0200 Subject: [PATCH] [unity] Fixed RenderExistingMesh causing one more unnecessary allocation. See #2543. --- .../Scripts/Sample Components/RenderExistingMesh.cs | 12 +++++++++--- spine-unity/Assets/Spine Examples/package.json | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/RenderExistingMesh.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/RenderExistingMesh.cs index 06f23e978..b0be909e2 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/RenderExistingMesh.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/RenderExistingMesh.cs @@ -152,11 +152,17 @@ namespace Spine.Unity.Examples { #endif ownMeshFilter.sharedMesh = referenceMeshFilter.sharedMesh; +#if HAS_GET_SHARED_MATERIALS + referenceRenderer.GetSharedMaterials(parentMaterials); + int parentMaterialsCount = parentMaterials.Count; +#else Material[] parentMaterials = referenceRenderer.sharedMaterials; - if (sharedMaterials.Length != parentMaterials.Length) { - sharedMaterials = new Material[parentMaterials.Length]; + int parentMaterialsCount = parentMaterials.Length; +#endif + if (sharedMaterials.Length != parentMaterialsCount) { + sharedMaterials = new Material[parentMaterialsCount]; } - for (int i = 0; i < parentMaterials.Length; ++i) { + for (int i = 0; i < parentMaterialsCount; ++i) { Material parentMaterial = parentMaterials[i]; if (replacementMaterialDict.ContainsKey(parentMaterial)) { sharedMaterials[i] = replacementMaterialDict[parentMaterial]; diff --git a/spine-unity/Assets/Spine Examples/package.json b/spine-unity/Assets/Spine Examples/package.json index 1edd0ba82..705bb9ab6 100644 --- a/spine-unity/Assets/Spine Examples/package.json +++ b/spine-unity/Assets/Spine Examples/package.json @@ -2,7 +2,7 @@ "name": "com.esotericsoftware.spine.spine-unity-examples", "displayName": "spine-unity Runtime Examples", "description": "This plugin provides example scenes and scripts for the spine-unity runtime.", - "version": "4.2.34", + "version": "4.2.35", "unity": "2018.3", "author": { "name": "Esoteric Software",