From d4ae313c6bcdeb6f1342541515204bbffaf17f65 Mon Sep 17 00:00:00 2001 From: NathanSweet Date: Wed, 5 Feb 2014 17:17:16 +0100 Subject: [PATCH] Fixed submesh bug, improved Clear(). closes #151 --- spine-tk2d/Assets/Spine/SkeletonComponent.cs | 11 +++++++++-- spine-unity/Assets/Spine/SkeletonComponent.cs | 11 +++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/spine-tk2d/Assets/Spine/SkeletonComponent.cs b/spine-tk2d/Assets/Spine/SkeletonComponent.cs index be4980589..f82162f50 100644 --- a/spine-tk2d/Assets/Spine/SkeletonComponent.cs +++ b/spine-tk2d/Assets/Spine/SkeletonComponent.cs @@ -66,10 +66,17 @@ public class SkeletonComponent : MonoBehaviour { public virtual void Clear () { if (meshFilter != null) meshFilter.sharedMesh = null; if (mesh != null) DestroyImmediate(mesh); + if (renderer != null) renderer.sharedMaterial = null; mesh = null; mesh1 = null; mesh2 = null; - if (renderer != null) renderer.sharedMaterial = null; + lastVertexCount = 0; + vertices = null; + colors = null; + uvs = null; + sharedMaterials = new Material[0]; + submeshMaterials.Clear(); + submeshes.Clear(); skeleton = null; } @@ -218,7 +225,7 @@ public class SkeletonComponent : MonoBehaviour { mesh.colors32 = colors; mesh.uv = uvs; - int submeshCount = submeshes.Count; + int submeshCount = submeshMaterials.Count; mesh.subMeshCount = submeshCount; for (int i = 0; i < submeshCount; ++i) mesh.SetTriangles(submeshes[i].indexes, i); diff --git a/spine-unity/Assets/Spine/SkeletonComponent.cs b/spine-unity/Assets/Spine/SkeletonComponent.cs index 0acda36d1..e52190c97 100644 --- a/spine-unity/Assets/Spine/SkeletonComponent.cs +++ b/spine-unity/Assets/Spine/SkeletonComponent.cs @@ -66,10 +66,17 @@ public class SkeletonComponent : MonoBehaviour { public virtual void Clear () { if (meshFilter != null) meshFilter.sharedMesh = null; if (mesh != null) DestroyImmediate(mesh); + if (renderer != null) renderer.sharedMaterial = null; mesh = null; mesh1 = null; mesh2 = null; - if (renderer != null) renderer.sharedMaterial = null; + lastVertexCount = 0; + vertices = null; + colors = null; + uvs = null; + sharedMaterials = new Material[0]; + submeshMaterials.Clear(); + submeshes.Clear(); skeleton = null; } @@ -218,7 +225,7 @@ public class SkeletonComponent : MonoBehaviour { mesh.colors32 = colors; mesh.uv = uvs; - int submeshCount = submeshes.Count; + int submeshCount = submeshMaterials.Count; mesh.subMeshCount = submeshCount; for (int i = 0; i < submeshCount; ++i) mesh.SetTriangles(submeshes[i].indexes, i);