From fcce08a14a0fa75caef5d6fbeedac40cb15c5c7c Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Thu, 28 Nov 2024 18:17:12 +0100 Subject: [PATCH] [unity] Fixed Mesh bounds computation always including origin. Closes #2701. --- .../Runtime/spine-unity/Mesh Generation/MeshGenerator.cs | 6 ++++-- spine-unity/Assets/Spine/package.json | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/MeshGenerator.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/MeshGenerator.cs index 269a777c0..769860926 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/MeshGenerator.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/MeshGenerator.cs @@ -1230,9 +1230,11 @@ namespace Spine.Unity { // Zero the extra. { int listCount = vertexBuffer.Count; - Vector3 vector3zero = Vector3.zero; + // unfortunately even non-indexed vertices are still used by Unity's bounds computation, + // (considered a Unity bug), thus avoid Vector3.zero and use last vertex instead. + Vector3 extraVertex = listCount == 0 ? Vector3.zero : vbi[listCount - 1]; for (int i = listCount; i < vbiLength; i++) - vbi[i] = vector3zero; + vbi[i] = extraVertex; } // Set the vertex buffer. diff --git a/spine-unity/Assets/Spine/package.json b/spine-unity/Assets/Spine/package.json index 3662eab62..39185bfda 100644 --- a/spine-unity/Assets/Spine/package.json +++ b/spine-unity/Assets/Spine/package.json @@ -2,7 +2,7 @@ "name": "com.esotericsoftware.spine.spine-unity", "displayName": "spine-unity Runtime", "description": "This plugin provides the spine-unity runtime core.", - "version": "4.2.89", + "version": "4.2.90", "unity": "2018.3", "author": { "name": "Esoteric Software",