From ff31888adf3c2649db67c31334125d696101fddf Mon Sep 17 00:00:00 2001 From: pharan Date: Thu, 15 Nov 2018 10:49:19 +0800 Subject: [PATCH 1/2] [unity] Fix submesh count regression. This also fixes tangents not being fully calculated when a skeleton uses no clipping and multiple submeshes. --- .../Spine/Runtime/spine-unity/Mesh Generation/SpineMesh.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SpineMesh.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SpineMesh.cs index 6a5691a35..487fe5396 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SpineMesh.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SpineMesh.cs @@ -866,12 +866,13 @@ namespace Spine.Unity { this.meshBoundsMax = bmax; this.meshBoundsThickness = lastSlotIndex * settings.zSpacing; + int submeshInstructionCount = instruction.submeshInstructions.Count; + submeshes.Count = submeshInstructionCount; + // Add triangles if (updateTriangles) { - int submeshInstructionCount = instruction.submeshInstructions.Count; - // Match submesh buffers count with submeshInstruction count. - if (this.submeshes.Count < submeshInstructionCount) { + if (this.submeshes.Items.Length < submeshInstructionCount) { this.submeshes.Resize(submeshInstructionCount); for (int i = 0, n = submeshInstructionCount; i < n; i++) { var submeshBuffer = this.submeshes.Items[i]; From 3a96c22c3a25accb4068b48b04dd2ecc961a402e Mon Sep 17 00:00:00 2001 From: pharan Date: Thu, 15 Nov 2018 11:30:48 +0800 Subject: [PATCH 2/2] [unity] Fix mesh generator submesh buffer starting too large. --- .../Spine/Runtime/spine-unity/Mesh Generation/SpineMesh.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SpineMesh.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SpineMesh.cs index 487fe5396..260362b42 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SpineMesh.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SpineMesh.cs @@ -175,6 +175,10 @@ namespace Spine.Unity { } } + public MeshGenerator () { + submeshes.TrimExcess(); + } + #region Step 1 : Generate Instructions public static void GenerateSingleSubmeshInstruction (SkeletonRendererInstruction instructionOutput, Skeleton skeleton, Material material) { ExposedList drawOrder = skeleton.drawOrder;