From f946fd8b561f80e3931fca287db6151ad742a540 Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Thu, 25 Jun 2020 15:58:39 +0200 Subject: [PATCH] [unity] Fixed SkeletonGraphic Mesh memory leak on Initialize(). Closes #1714. --- .../spine-unity/Components/SkeletonGraphic.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs index 2956a56d6..84034da24 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs @@ -426,7 +426,7 @@ namespace Spine.Unity { ScaleY = this.initialFlipY ? -1 : 1 }; - meshBuffers = new DoubleBuffered(); + InitMeshBuffers(); baseTexture = skeletonDataAsset.atlasAssets[0].PrimaryMaterial.mainTexture; canvasRenderer.SetTexture(this.mainTexture); // Needed for overwriting initializations. @@ -478,6 +478,16 @@ namespace Spine.Unity { } #endregion + protected void InitMeshBuffers () { + if (meshBuffers != null) { + meshBuffers.GetNext().Clear(); + meshBuffers.GetNext().Clear(); + } + else { + meshBuffers = new DoubleBuffered(); + } + } + protected void UpdateMeshSingleCanvasRenderer () { if (canvasRenderers.Count > 0) DisableUnusedCanvasRenderers(usedCount : 0);