Browse Source

[unity] Handle MeshRendererBuffers reinitialize.

John 7 years ago
parent
commit
0d829a7ba2
1 changed files with 12 additions and 1 deletions
  1. 12 1
      spine-unity/Assets/spine-unity/Mesh Generation/SpineMesh.cs

+ 12 - 1
spine-unity/Assets/spine-unity/Mesh Generation/SpineMesh.cs

@@ -1284,7 +1284,13 @@ namespace Spine.Unity {
 		internal Material[] sharedMaterials = new Material[0];
 		internal Material[] sharedMaterials = new Material[0];
 
 
 		public void Initialize () {
 		public void Initialize () {
-			doubleBufferedMesh = new DoubleBuffered<SmartMesh>();
+			if (doubleBufferedMesh != null) {
+				doubleBufferedMesh.GetNext().Clear();
+				doubleBufferedMesh.GetNext().Clear();
+				submeshMaterials.Clear();
+			} else {
+				doubleBufferedMesh = new DoubleBuffered<SmartMesh>();
+			}
 		}
 		}
 
 
 		public Material[] GetUpdatedSharedMaterialsArray () {
 		public Material[] GetUpdatedSharedMaterialsArray () {
@@ -1343,6 +1349,11 @@ namespace Spine.Unity {
 			public Mesh mesh = SpineMesh.NewSkeletonMesh();
 			public Mesh mesh = SpineMesh.NewSkeletonMesh();
 			public SkeletonRendererInstruction instructionUsed = new SkeletonRendererInstruction();		
 			public SkeletonRendererInstruction instructionUsed = new SkeletonRendererInstruction();		
 
 
+			public void Clear () {
+				mesh.Clear();
+				instructionUsed.Clear();
+			}
+
 			public void Dispose () {
 			public void Dispose () {
 				if (mesh != null) {
 				if (mesh != null) {
 					#if UNITY_EDITOR
 					#if UNITY_EDITOR