diff --git a/spine-unity/Assets/spine-unity/Components/SkeletonRenderer.cs b/spine-unity/Assets/spine-unity/Components/SkeletonRenderer.cs
index 811cfcb92..1eb23a46d 100644
--- a/spine-unity/Assets/spine-unity/Components/SkeletonRenderer.cs
+++ b/spine-unity/Assets/spine-unity/Components/SkeletonRenderer.cs
@@ -171,6 +171,10 @@ namespace Spine.Unity {
if (skeleton != null) skeleton.SetToSetupPose();
}
+ public void EnsureMeshGeneratorCapacity (int minimumVertexCount) {
+ meshGenerator.EnsureVertexCapacity(minimumVertexCount);
+ }
+
///
/// Initialize this component. Attempts to load the SkeletonData and creates the internal Skeleton object and buffers.
/// If set to true, it will overwrite internal objects if they were already generated. Otherwise, the initialized component will ignore subsequent calls to initialize.
diff --git a/spine-unity/Assets/spine-unity/Mesh Generation/SpineMesh.cs b/spine-unity/Assets/spine-unity/Mesh Generation/SpineMesh.cs
index c9b012184..ac4e19469 100644
--- a/spine-unity/Assets/spine-unity/Mesh Generation/SpineMesh.cs
+++ b/spine-unity/Assets/spine-unity/Mesh Generation/SpineMesh.cs
@@ -1059,6 +1059,39 @@ namespace Spine.Unity {
}
#endregion
+ public void EnsureVertexCapacity (int minimumVertexCount, bool inlcudeTintBlack = false, bool includeTangents = false, bool includeNormals = false) {
+ if (minimumVertexCount > vertexBuffer.Items.Length) {
+ Array.Resize(ref vertexBuffer.Items, minimumVertexCount);
+ Array.Resize(ref uvBuffer.Items, minimumVertexCount);
+ Array.Resize(ref colorBuffer.Items, minimumVertexCount);
+
+ if (inlcudeTintBlack) {
+ if (uv2 == null) {
+ uv2 = new ExposedList(minimumVertexCount);
+ uv3 = new ExposedList(minimumVertexCount);
+ }
+ uv2.Resize(minimumVertexCount);
+ uv3.Resize(minimumVertexCount);
+ }
+
+ if (includeNormals) {
+ if (normals == null)
+ normals = new Vector3[minimumVertexCount];
+ else
+ Array.Resize(ref normals, minimumVertexCount);
+
+ }
+
+ if (includeTangents) {
+ if (tangents == null)
+ tangents = new Vector4[minimumVertexCount];
+ else
+ Array.Resize(ref tangents, minimumVertexCount);
+ }
+ }
+ //vertexBuffer.Count = uvBuffer.Count = colorBuffer.Count = minimumVertexCount;
+ }
+
public void TrimExcess () {
vertexBuffer.TrimExcess();
uvBuffer.TrimExcess();