diff --git a/spine-tk2d/Assets/Spine/Editor/SkeletonAnimationInspector.cs b/spine-tk2d/Assets/Spine/Editor/SkeletonAnimationInspector.cs index 063ebadd3..e4a30c9db 100644 --- a/spine-tk2d/Assets/Spine/Editor/SkeletonAnimationInspector.cs +++ b/spine-tk2d/Assets/Spine/Editor/SkeletonAnimationInspector.cs @@ -49,7 +49,6 @@ public class SkeletonAnimationInspector : Editor { serializedObject.Update(); SkeletonAnimation component = (SkeletonAnimation)target; - EditorGUIUtility.LookLikeInspector(); EditorGUILayout.PropertyField(skeletonDataAsset); if (component.skeleton != null) { @@ -67,7 +66,6 @@ public class SkeletonAnimationInspector : Editor { EditorGUILayout.LabelField("Initial Skin"); EditorGUIUtility.LookLikeControls(); skinIndex = EditorGUILayout.Popup(skinIndex, skins); - EditorGUIUtility.LookLikeInspector(); EditorGUILayout.EndHorizontal(); initialSkinName.stringValue = skins[skinIndex]; @@ -87,7 +85,6 @@ public class SkeletonAnimationInspector : Editor { EditorGUILayout.LabelField("Animation"); EditorGUIUtility.LookLikeControls(); animationIndex = EditorGUILayout.Popup(animationIndex, animations); - EditorGUIUtility.LookLikeInspector(); EditorGUILayout.EndHorizontal(); if (animationIndex == 0) diff --git a/spine-tk2d/Assets/Spine/Editor/SkeletonComponentInspector.cs b/spine-tk2d/Assets/Spine/Editor/SkeletonComponentInspector.cs index 2ae49a539..91687c84b 100644 --- a/spine-tk2d/Assets/Spine/Editor/SkeletonComponentInspector.cs +++ b/spine-tk2d/Assets/Spine/Editor/SkeletonComponentInspector.cs @@ -46,7 +46,6 @@ public class SkeletonComponentInspector : Editor { serializedObject.Update(); SkeletonComponent component = (SkeletonComponent)target; - EditorGUIUtility.LookLikeInspector(); EditorGUILayout.PropertyField(skeletonDataAsset); if (component.skeleton != null) { @@ -64,7 +63,6 @@ public class SkeletonComponentInspector : Editor { EditorGUILayout.LabelField("Initial Skin"); EditorGUIUtility.LookLikeControls(); skinIndex = EditorGUILayout.Popup(skinIndex, skins); - EditorGUIUtility.LookLikeInspector(); EditorGUILayout.EndHorizontal(); initialSkinName.stringValue = skins[skinIndex]; diff --git a/spine-tk2d/Assets/Spine/Editor/SkeletonDataAssetInspector.cs b/spine-tk2d/Assets/Spine/Editor/SkeletonDataAssetInspector.cs index 2712c875d..8dbb487fe 100644 --- a/spine-tk2d/Assets/Spine/Editor/SkeletonDataAssetInspector.cs +++ b/spine-tk2d/Assets/Spine/Editor/SkeletonDataAssetInspector.cs @@ -49,8 +49,6 @@ public class SkeletonDataAssetInspector : Editor { serializedObject.Update(); SkeletonDataAsset asset = (SkeletonDataAsset)target; - EditorGUIUtility.LookLikeInspector(); - tk2dSpriteCollection sprites = EditorGUILayout.ObjectField("Sprite Collection", asset.spriteCollection, typeof(tk2dSpriteCollection), false) as tk2dSpriteCollection; if (sprites != null) spriteCollection.objectReferenceValue = sprites.spriteCollection; diff --git a/spine-tk2d/Assets/Spine/SkeletonComponent.cs b/spine-tk2d/Assets/Spine/SkeletonComponent.cs index f82162f50..5868419f1 100644 --- a/spine-tk2d/Assets/Spine/SkeletonComponent.cs +++ b/spine-tk2d/Assets/Spine/SkeletonComponent.cs @@ -41,6 +41,7 @@ public class SkeletonComponent : MonoBehaviour { public float timeScale = 1; public bool calculateNormals; public bool calculateTangents; + public float zSpacing = 0.1f; private MeshFilter meshFilter; private Mesh mesh, mesh1, mesh2; private bool useMesh1; @@ -161,7 +162,6 @@ public class SkeletonComponent : MonoBehaviour { // Double buffer mesh. Mesh mesh = useMesh1 ? mesh1 : mesh2; - useMesh1 = !useMesh1; meshFilter.sharedMesh = mesh; // Ensure mesh data is the right size. @@ -189,7 +189,7 @@ public class SkeletonComponent : MonoBehaviour { Color32[] colors = this.colors; int vertexIndex = 0; Color32 color = new Color32(); - float a = skeleton.A * 255, r = skeleton.R, g = skeleton.G, b = skeleton.B; + float a = skeleton.A * 255, r = skeleton.R, g = skeleton.G, b = skeleton.B, zSpacing = this.zSpacing; for (int i = 0, n = drawOrder.Count; i < n; i++) { Slot slot = drawOrder[i]; RegionAttachment regionAttachment = slot.Attachment as RegionAttachment; @@ -197,11 +197,12 @@ public class SkeletonComponent : MonoBehaviour { continue; regionAttachment.ComputeWorldVertices(skeleton.X, skeleton.Y, slot.Bone, vertexPositions); - - vertices[vertexIndex] = new Vector3(vertexPositions[RegionAttachment.X1], vertexPositions[RegionAttachment.Y1], 0); - vertices[vertexIndex + 1] = new Vector3(vertexPositions[RegionAttachment.X4], vertexPositions[RegionAttachment.Y4], 0); - vertices[vertexIndex + 2] = new Vector3(vertexPositions[RegionAttachment.X2], vertexPositions[RegionAttachment.Y2], 0); - vertices[vertexIndex + 3] = new Vector3(vertexPositions[RegionAttachment.X3], vertexPositions[RegionAttachment.Y3], 0); + + float z = i * zSpacing; + vertices[vertexIndex] = new Vector3(vertexPositions[RegionAttachment.X1], vertexPositions[RegionAttachment.Y1], z); + vertices[vertexIndex + 1] = new Vector3(vertexPositions[RegionAttachment.X4], vertexPositions[RegionAttachment.Y4], z); + vertices[vertexIndex + 2] = new Vector3(vertexPositions[RegionAttachment.X2], vertexPositions[RegionAttachment.Y2], z); + vertices[vertexIndex + 3] = new Vector3(vertexPositions[RegionAttachment.X3], vertexPositions[RegionAttachment.Y3], z); color.a = (byte)(a * slot.A); color.r = (byte)(r * slot.R * color.a); @@ -236,7 +237,7 @@ public class SkeletonComponent : MonoBehaviour { Vector3 normal = new Vector3(0, 0, -1); for (int i = 0; i < vertexCount; i++) normals[i] = normal; - (useMesh1 ? mesh1 : mesh2).vertices = vertices; + (useMesh1 ? mesh2 : mesh1).vertices = vertices; // Set other mesh vertices. mesh1.normals = normals; mesh2.normals = normals; @@ -249,6 +250,8 @@ public class SkeletonComponent : MonoBehaviour { mesh2.tangents = tangents; } } + + useMesh1 = !useMesh1; } /** Adds a material. Adds submesh indexes if existing indexes aren't sufficient. */ diff --git a/spine-tk2d/Assets/examples/spineboy/Spineboy.cs b/spine-tk2d/Assets/examples/spineboy/Spineboy.cs index 02d111180..91a76a6ce 100644 --- a/spine-tk2d/Assets/examples/spineboy/Spineboy.cs +++ b/spine-tk2d/Assets/examples/spineboy/Spineboy.cs @@ -32,11 +32,17 @@ using Spine; using System; public class Spineboy : MonoBehaviour { - private SkeletonAnimation skeleton; + private SkeletonAnimation skeletonAnimation; void Start() { - skeleton = GetComponent(); - skeleton.state.Event += Event; + // Get the SkeletonAnimation component for the GameObject this script is attached to. + skeletonAnimation = GetComponent(); + // Call our method any time an animation fires an event. + skeletonAnimation.state.Event += Event; + // Queue jump to be played on track 0 after the starting animation. + skeletonAnimation.state.AddAnimation(0, "jump", false, 0); + // Queue walk to be looped on track 0 after the jump animation. + skeletonAnimation.state.AddAnimation(0, "walk", true, 0); } public void Event (Spine.AnimationState state, int trackIndex, Spine.Event e) { @@ -44,7 +50,9 @@ public class Spineboy : MonoBehaviour { } void OnMouseDown() { - skeleton.state.SetAnimation(0, "jump", false); - skeleton.state.AddAnimation(0, "walk", true, 0); + // Set jump to be played on track 0 immediately. + skeletonAnimation.state.SetAnimation(0, "jump", false); + // Queue walk to be looped on track 0 after the jump animation. + skeletonAnimation.state.AddAnimation(0, "walk", true, 0); } } diff --git a/spine-tk2d/Assets/examples/spineboy/spineboy.unity b/spine-tk2d/Assets/examples/spineboy/spineboy.unity index 50a6987ed..3313c26fa 100644 Binary files a/spine-tk2d/Assets/examples/spineboy/spineboy.unity and b/spine-tk2d/Assets/examples/spineboy/spineboy.unity differ diff --git a/spine-tk2d/Assets/examples/testdragon.meta b/spine-tk2d/Assets/examples/testdragon.meta deleted file mode 100644 index f960add87..000000000 --- a/spine-tk2d/Assets/examples/testdragon.meta +++ /dev/null @@ -1,5 +0,0 @@ -fileFormatVersion: 2 -guid: 0030feb017e65e9408fb61bb0049fee9 -folderAsset: yes -DefaultImporter: - userData: diff --git a/spine-tk2d/Assets/examples/testdragon/dragon Data.meta b/spine-tk2d/Assets/examples/testdragon/dragon Data.meta deleted file mode 100644 index e82deba3d..000000000 --- a/spine-tk2d/Assets/examples/testdragon/dragon Data.meta +++ /dev/null @@ -1,5 +0,0 @@ -fileFormatVersion: 2 -guid: 0b313125884100344b0aee91d8822094 -folderAsset: yes -DefaultImporter: - userData: diff --git a/spine-unity/Assets/Spine/SkeletonComponent.cs b/spine-unity/Assets/Spine/SkeletonComponent.cs index e52190c97..fe27dceb5 100644 --- a/spine-unity/Assets/Spine/SkeletonComponent.cs +++ b/spine-unity/Assets/Spine/SkeletonComponent.cs @@ -41,6 +41,7 @@ public class SkeletonComponent : MonoBehaviour { public float timeScale = 1; public bool calculateNormals; public bool calculateTangents; + public float zSpacing = 0.1f; private MeshFilter meshFilter; private Mesh mesh, mesh1, mesh2; private bool useMesh1; @@ -188,7 +189,7 @@ public class SkeletonComponent : MonoBehaviour { Color32[] colors = this.colors; int vertexIndex = 0; Color32 color = new Color32(); - float a = skeleton.A * 255, r = skeleton.R, g = skeleton.G, b = skeleton.B; + float a = skeleton.A * 255, r = skeleton.R, g = skeleton.G, b = skeleton.B, zSpacing = this.zSpacing; for (int i = 0, n = drawOrder.Count; i < n; i++) { Slot slot = drawOrder[i]; RegionAttachment regionAttachment = slot.Attachment as RegionAttachment; @@ -197,7 +198,7 @@ public class SkeletonComponent : MonoBehaviour { regionAttachment.ComputeWorldVertices(skeleton.X, skeleton.Y, slot.Bone, vertexPositions); - float z = -i * 0.1f; + float z = i * zSpacing; vertices[vertexIndex] = new Vector3(vertexPositions[RegionAttachment.X1], vertexPositions[RegionAttachment.Y1], z); vertices[vertexIndex + 1] = new Vector3(vertexPositions[RegionAttachment.X4], vertexPositions[RegionAttachment.Y4], z); vertices[vertexIndex + 2] = new Vector3(vertexPositions[RegionAttachment.X2], vertexPositions[RegionAttachment.Y2], z); @@ -236,7 +237,7 @@ public class SkeletonComponent : MonoBehaviour { Vector3 normal = new Vector3(0, 0, -1); for (int i = 0; i < vertexCount; i++) normals[i] = normal; - (useMesh1 ? mesh2 : mesh1).vertices = vertices; + (useMesh1 ? mesh2 : mesh1).vertices = vertices; // Set other mesh vertices. mesh1.normals = normals; mesh2.normals = normals; @@ -249,7 +250,7 @@ public class SkeletonComponent : MonoBehaviour { mesh2.tangents = tangents; } } - + useMesh1 = !useMesh1; } @@ -260,7 +261,7 @@ public class SkeletonComponent : MonoBehaviour { int indexCount = submeshQuadCount * 6; int vertexIndex = (endQuadCount - submeshQuadCount) * 4; - + if (submeshes.Count <= submeshIndex) submeshes.Add(new Submesh()); Submesh submesh = submeshes[submeshIndex]; diff --git a/spine-unity/Assets/examples/goblins/goblins.unity b/spine-unity/Assets/examples/goblins/goblins.unity index dc8455615..6e6bd68ed 100644 Binary files a/spine-unity/Assets/examples/goblins/goblins.unity and b/spine-unity/Assets/examples/goblins/goblins.unity differ diff --git a/spine-unity/Assets/examples/spineboy/Spineboy.cs b/spine-unity/Assets/examples/spineboy/Spineboy.cs index e81b7e0a7..5b54cd56c 100644 --- a/spine-unity/Assets/examples/spineboy/Spineboy.cs +++ b/spine-unity/Assets/examples/spineboy/Spineboy.cs @@ -35,8 +35,14 @@ public class Spineboy : MonoBehaviour { SkeletonAnimation skeletonAnimation; public void Start () { - skeletonAnimation = GetComponent(); + // Get the SkeletonAnimation component for the GameObject this script is attached to. + skeletonAnimation = GetComponent(); + // Call our method any time an animation fires an event. skeletonAnimation.state.Event += Event; + // Queue jump to be played on track 0 after the starting animation. + skeletonAnimation.state.AddAnimation(0, "jump", false, 0); + // Queue walk to be looped on track 0 after the jump animation. + skeletonAnimation.state.AddAnimation(0, "walk", true, 0); } public void Event (Spine.AnimationState state, int trackIndex, Spine.Event e) { @@ -44,7 +50,9 @@ public class Spineboy : MonoBehaviour { } public void OnMouseDown () { + // Set jump to be played on track 0 immediately. skeletonAnimation.state.SetAnimation(0, "jump", false); + // Queue walk to be looped on track 0 after the jump animation. skeletonAnimation.state.AddAnimation(0, "walk", true, 0); } } diff --git a/spine-unity/Assets/examples/spineboy/spineboy.unity b/spine-unity/Assets/examples/spineboy/spineboy.unity index 4c0a78ed4..49501911a 100644 Binary files a/spine-unity/Assets/examples/spineboy/spineboy.unity and b/spine-unity/Assets/examples/spineboy/spineboy.unity differ