Browse Source

[unity] Fixed RenderExistingMesh causing one more unnecessary allocation. See #2543.

Harald Csaszar 1 year ago
parent
commit
f4ebfdb61e

+ 9 - 3
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];

+ 1 - 1
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",