From 6756f015575400348c510ed19a0e8f8888542270 Mon Sep 17 00:00:00 2001 From: pharan Date: Thu, 18 May 2017 11:18:07 +0800 Subject: [PATCH] [unity] Fix tintBlack data applied in wrong order. --- .../spine-unity/Mesh Generation/SpineMesh.cs | 96 ++++++++++--------- 1 file changed, 49 insertions(+), 47 deletions(-) diff --git a/spine-unity/Assets/spine-unity/Mesh Generation/SpineMesh.cs b/spine-unity/Assets/spine-unity/Mesh Generation/SpineMesh.cs index fb373bd69..a28eb7e0b 100644 --- a/spine-unity/Assets/spine-unity/Mesh Generation/SpineMesh.cs +++ b/spine-unity/Assets/spine-unity/Mesh Generation/SpineMesh.cs @@ -653,6 +653,55 @@ namespace Spine.Unity { int startSlot = submesh.startSlot; lastSlotIndex = endSlot; + if (settings.tintBlack) { + Vector2 rg, b2; + int vi = vertexIndex; + b2.y = 1f; + + { + if (uv2 == null) { + uv2 = new ExposedList(); + uv3 = new ExposedList(); + } + if (totalVertexCount > uv2.Items.Length) { // Manual ExposedList.Resize() + Array.Resize(ref uv2.Items, totalVertexCount); + Array.Resize(ref uv3.Items, totalVertexCount); + } + Debug.Log(totalVertexCount); + uv2.Count = uv3.Count = totalVertexCount; + } + + var uv2i = uv2.Items; + var uv3i = uv3.Items; + + for (int slotIndex = startSlot; slotIndex < endSlot; slotIndex++) { + var slot = skeletonDrawOrderItems[slotIndex]; + var attachment = slot.attachment; + + rg.x = slot.r2; //r + rg.y = slot.g2; //g + b2.x = slot.b2; //b + + var regionAttachment = attachment as RegionAttachment; + if (regionAttachment != null) { + Debug.Log(vi); + uv2i[vi] = rg; uv2i[vi + 1] = rg; uv2i[vi + 2] = rg; uv2i[vi + 3] = rg; + uv3i[vi] = b2; uv3i[vi + 1] = b2; uv3i[vi + 2] = b2; uv3i[vi + 3] = b2; + vi += 4; + } else { //} if (settings.renderMeshes) { + var meshAttachment = attachment as MeshAttachment; + if (meshAttachment != null) { + int meshVertexCount = meshAttachment.worldVerticesLength; + for (int iii = 0; iii < meshVertexCount; iii += 2) { + uv2i[vi] = rg; + uv3i[vi] = b2; + vi++; + } + } + } + } + } + for (int slotIndex = startSlot; slotIndex < endSlot; slotIndex++) { var slot = skeletonDrawOrderItems[slotIndex]; var attachment = slot.attachment; @@ -761,53 +810,6 @@ namespace Spine.Unity { } } } - - if (settings.tintBlack) { - Vector2 rg, b2; - int vi = vertexIndex; - b2.y = 1f; - - { - if (uv2 == null) { - uv2 = new ExposedList(); - uv3 = new ExposedList(); - } - if (totalVertexCount > uv2.Items.Length) { // Manual ExposedList.Resize() - Array.Resize(ref uv2.Items, totalVertexCount); - Array.Resize(ref uv3.Items, totalVertexCount); - } - uv2.Count = uv3.Count = totalVertexCount; - } - - var uv2i = uv2.Items; - var uv3i = uv3.Items; - - for (int slotIndex = startSlot; slotIndex < endSlot; slotIndex++) { - var slot = skeletonDrawOrderItems[slotIndex]; - var attachment = slot.attachment; - - rg.x = slot.r2; //r - rg.y = slot.g2; //g - b2.x = slot.b2; //b - - var regionAttachment = attachment as RegionAttachment; - if (regionAttachment != null) { - uv2i[vi] = rg; uv2i[vi + 1] = rg; uv2i[vi + 2] = rg; uv2i[vi + 3] = rg; - uv3i[vi] = b2; uv3i[vi + 1] = b2; uv3i[vi + 2] = b2; uv3i[vi + 3] = b2; - vi += 4; - } else { //} if (settings.renderMeshes) { - var meshAttachment = attachment as MeshAttachment; - if (meshAttachment != null) { - int meshVertexCount = meshAttachment.worldVerticesLength; - for (int iii = 0; iii < meshVertexCount; iii += 2) { - uv2i[vi] = rg; - uv3i[vi] = b2; - vi++; - } - } - } - } - } } this.meshBoundsMin = bmin;