From 99c81b6b011de64c9fef939ab0d00c4f85934c4d Mon Sep 17 00:00:00 2001 From: Dgizusse Date: Mon, 13 May 2013 11:18:57 -0400 Subject: [PATCH 1/2] - Added support for SpriteCollection using multi-platform. --- spine-tk2d/Code/tk2dSpineAttachmentLoader.cs | 4 ++-- spine-tk2d/Code/tk2dSpineSkeleton.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/spine-tk2d/Code/tk2dSpineAttachmentLoader.cs b/spine-tk2d/Code/tk2dSpineAttachmentLoader.cs index 14f1096bc..f5b6af31a 100644 --- a/spine-tk2d/Code/tk2dSpineAttachmentLoader.cs +++ b/spine-tk2d/Code/tk2dSpineAttachmentLoader.cs @@ -23,8 +23,8 @@ public class tk2dSpineAttachmentLoader : AttachmentLoader { if(type != AttachmentType.region) throw new Exception("Unknown attachment type: " + type); tk2dSpriteDefinition attachmentParameters = null; - for(int i = 0; i < sprites.spriteDefinitions.Length; ++i) { - tk2dSpriteDefinition def = sprites.spriteDefinitions[i]; + for(int i = 0; i < sprites.inst.spriteDefinitions.Length; ++i) { + tk2dSpriteDefinition def = sprites.inst.spriteDefinitions[i]; if(def.name == name) { attachmentParameters = def; break; diff --git a/spine-tk2d/Code/tk2dSpineSkeleton.cs b/spine-tk2d/Code/tk2dSpineSkeleton.cs index 33528e2e9..b9fdf63d8 100644 --- a/spine-tk2d/Code/tk2dSpineSkeleton.cs +++ b/spine-tk2d/Code/tk2dSpineSkeleton.cs @@ -137,7 +137,7 @@ public class tk2dSpineSkeleton : MonoBehaviour { mesh.triangles = triangles; mesh.RecalculateNormals(); - renderer.sharedMaterial = skeletonDataAsset.sprites.spriteCollection.materials[0]; + renderer.sharedMaterial = skeletonDataAsset.sprites.spriteCollection.inst.materials[0]; } /* From aee230b1564633148a99aa481cd99a5e7748c286 Mon Sep 17 00:00:00 2001 From: Dgizusse Date: Mon, 13 May 2013 11:25:08 -0400 Subject: [PATCH 2/2] - Properly update mesh data when switching platform in editor. --- spine-tk2d/Code/tk2dSpineSkeleton.cs | 13 ++++++++++++- spine-tk2d/Code/tk2dSpineSkeletonDataAsset.cs | 4 ++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/spine-tk2d/Code/tk2dSpineSkeleton.cs b/spine-tk2d/Code/tk2dSpineSkeleton.cs index b9fdf63d8..82983b5a9 100644 --- a/spine-tk2d/Code/tk2dSpineSkeleton.cs +++ b/spine-tk2d/Code/tk2dSpineSkeleton.cs @@ -10,7 +10,7 @@ using Spine; [ExecuteInEditMode] [RequireComponent(typeof(MeshFilter))] [RequireComponent(typeof(MeshRenderer))] -public class tk2dSpineSkeleton : MonoBehaviour { +public class tk2dSpineSkeleton : MonoBehaviour, tk2dRuntime.ISpriteCollectionForceBuild { /* */ @@ -188,4 +188,15 @@ public class tk2dSpineSkeleton : MonoBehaviour { state.Update(Time.deltaTime * animationSpeed); state.Apply(skeleton); } + + public bool UsesSpriteCollection(tk2dSpriteCollectionData spriteCollection) { + return skeletonDataAsset.sprites.spriteCollection == spriteCollection; + } + + public void ForceBuild() { + skeletonDataAsset.ForceUpdate(); + skeleton = new Skeleton(skeletonDataAsset.GetSkeletonData()); + + UpdateMesh(); + } } diff --git a/spine-tk2d/Code/tk2dSpineSkeletonDataAsset.cs b/spine-tk2d/Code/tk2dSpineSkeletonDataAsset.cs index a47e40da1..ddba8b969 100644 --- a/spine-tk2d/Code/tk2dSpineSkeletonDataAsset.cs +++ b/spine-tk2d/Code/tk2dSpineSkeletonDataAsset.cs @@ -68,4 +68,8 @@ public class tk2dSpineSkeletonDataAsset : ScriptableObject { stateData.SetMix(fromAnimation[i],toAnimation[i],duration[i]); } } + + public void ForceUpdate() { + MakeSkeletonAndAnimationData(); + } }