From 86093e7d0daeb5c497e46f546ef7967d53d7cfea Mon Sep 17 00:00:00 2001 From: NathanSweet Date: Wed, 5 Feb 2014 18:10:07 +0100 Subject: [PATCH] Clean up, added zSpacing. #166 --- .../Editor/SkeletonAnimationInspector.cs | 3 --- .../Editor/SkeletonComponentInspector.cs | 2 -- .../Editor/SkeletonDataAssetInspector.cs | 2 -- spine-tk2d/Assets/Spine/SkeletonComponent.cs | 19 ++++++++++-------- .../Assets/examples/spineboy/Spineboy.cs | 18 ++++++++++++----- .../Assets/examples/spineboy/spineboy.unity | Bin 21648 -> 21680 bytes spine-tk2d/Assets/examples/testdragon.meta | 5 ----- .../examples/testdragon/dragon Data.meta | 5 ----- spine-unity/Assets/Spine/SkeletonComponent.cs | 11 +++++----- .../Assets/examples/goblins/goblins.unity | Bin 20944 -> 20952 bytes .../Assets/examples/spineboy/Spineboy.cs | 10 ++++++++- .../Assets/examples/spineboy/spineboy.unity | Bin 18328 -> 18696 bytes 12 files changed, 39 insertions(+), 36 deletions(-) delete mode 100644 spine-tk2d/Assets/examples/testdragon.meta delete mode 100644 spine-tk2d/Assets/examples/testdragon/dragon Data.meta 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 50a6987edf2caeba8c7dd098e662e37ab3d1d850..3313c26fa8b75a5a70ccc7def9d87ad826a796a2 100644 GIT binary patch delta 3373 zcmcguZ%k8H6u+?A|1~bN{Q2K+I?Bn zMWq~FmTWWi%K~v9OqwiPviNT<(?t#YuxuY#6qhVcvxwW`KIwMueGh5pwuF%ECgNev$QSD@AJvI>spw7W*HV_xzMYW#~a$A9AnBil*dR!$vW_@3-=-KJq4zSu% zvU-PxgsDld-`6%J2sBUV$2S6J;Nhp-5_QI!oiV_z{8=sphYOzLB5<*w5cwkGoR-RZ z##^-g%)R>wS&&{Vhxwu;IHxr+?4DM1nJ*NR`&gk?6B{5h><+qFeiwu%vfxk00eo$Cz@OLM01 z1YZ>AK>P+>?aY}{RD(8sxjG3g#j0ZwDu+1k~(a)iXk{)H86v_iZZ#hCq|U0`JYBql99ra zbhfRi9%BF_XY&dk>A-3{a4Nmtdv-eA!BKG6W`^HP0hh7%AWb9MLb4~oxRVFU|p0!Q2f8V1VPCgCRz@sKH9i8g@@B#L8%_LC? zD@m_v`4wk(Foo5L--8RQkMwa9le`A920^CyhoZmmW+ zqs^?0u${$AAAm&_?~brfEh6IY4F37CMl**a5hjcCgKTv^L&Vw;KQBEO@$+!GjmG_9 zTQTzdcFJ4ZE0K@4Z)Q9jzHB$5beD}y9i=EcJE+Ei4tlD&jt1mEcF>gy8{MnXMsAOlJS>2sbYxnxlX#}cbyjG>+Ds?H`!^3M(h+n!H_TP;v={6Luvqf zm%4!-xj-WN3h0ntMWR0%lxX1%A<@!#P$DWHf^ZlAJguU2IJzv+_S?3cdc?dq7K2R4 z0AjN^IDwcT(JP2qVX=!pIE_Y+#%PBZ-ZtvcDAoKETLAkR#HJB5qO6w)5c?Fd2#z%p zoj`0GI!Ax#sgIOSA~uTx_42W_-@Az2Ld=R)iL~GZrC*$fU(&%_-Tc9``2Ok;>67R_ z&df{L8;DU_LTpLGXt*dnKun!Xh!17@%24_hu@GXhF3GEJj?E)Bf%BY13dHRAi0`5< zEuSY9!CBDv@L6|o%806ZiPCUJEsu8hs5qE+sFe{bA)zKhuC$^8_#K@xs}(Lf3h89@ zrsD@$;`M9So`=tSD-cP9n!Yr+>d>H^1ZwAd(TH<{4DP&;7oC4m$HBBK4Ssih@E0E9 Bt6l&A delta 3541 zcmd53$g6n<~ozF9g;r!%E9owYO5y)d1bBBdpCrt4G&XoUvQQZm2*h1P~rid3c3 zACMB36b>qh5sHZkO@BxnO!(n~N@CR@{4y#80{*dytcij#0nfej?(3pPN!rAhoO{ms z?sArQ?tS;28|8;bc?-uy7INI`VUFXJC^sYL$`|+-__mZEvs4JJO)vKb{NO9khLOBA z!m6Y?XmK&ok-wISyj4O^Pojg9sH4CI8A2gjbeU{Dn>r?wre2kGGPFA7Z6?O;^WYbG zG1yW|R2k^v|I4o~=4P8hiepf*o1woezJy_=0C$v1-UW}8^LaOXs&MCdFc6+mnB!z9 zCo|0L>gbPgsi^0{c2zE)4~JFNEN{>LGF+fjuVmgt)xk{B%9f6vUA@$d8V0=v_(JVv zqsC-8pwlRrdKJ~fUbPHsA*|VXo7=#vz~?q(iKXAQp`oKQ)>KDBONU!> zgHGycj`nVAs)O}1Gx}!ZHPn{&KiJZtEkB>}k9PFL4vVwjZ-JGVl|hd`-$1;_hXg~O z6r?Sk-O*mIuOqgnHrCm>3J(;}o6I^fH5;QlVk9r%D=~mGAY`(X#k#tC_O|YdZjC_; zcC9cA(2`fms&lqBXoN*^tH|}2#C_&7!21P(*|u2#V?}{~w<{zHi;wZMZJd7j;Jx`J zbF=VAUQ<>pef7zP7DAlkG>Hjshl~Z?>X-IazyEa@(q=+MAcM~$1vmK?l7$V|Lb&(D5cRkFDLNu#ip4)Im{AmKD7~=*x}JR$eeC2}pE5_qlA+UA8x2 zK$p!tTDN!)v^&$`+TsERO*?1$nPcZFcVgLV!CU2^ysgSk`B0UIZif%5^6@zQ0ekC8 zGC{ROi<)^!8Jj*^TO?UA3zzz*FKmQUGa)mmtEIvov{>P;T>6$d@~xnC=-_yD1B?1v z^{Y%=7nBNOUr@S@-3Yqa7rtu)Im}>8$c2*76`q4XLd7&0ftoy;jCSOBe89n)e2RZu zlT6k`jf?i{YfCXbOKZs&q@A|=XnTsbpVa#3s9$THlw0bOJXBXmSKCwPrTjeQ0!-8` zqWXe*3v^cs&|aZ{HT7hU7WUWMC_h(Uid=x(6c=D1BnMqX(pw^j8mzQ`Q-g12X1{4z zgdwIh7U2LjR5X%M)UdIUEUbn@B0t|qLes!cjRnYwfi%bpd%%uk>chktHI$jspf8-9 zcRK8bC+>8(94=vbpK{-IHu(pfxM^)7k;?|r*CK5bi5%yzAdw5T<}dC zIF48lv5-i2nh&-rFvNqXGiUB1b`misVl5)wL+pZxy@nW}`-punVr{4sdVttt#JWgI zjUqina2sASrh2IG-rR8kv7I=E8CD`zCQrU57M%*QA;f|>jyau<*f?TSGowcAK4Q#9 zV#Tsl9_}yKD&y6dYt*}FLL``}UzeT>4!T8EjxY(QtS0eMk*?cl_u~{R7 QuOpVk&o4N6$XGq{Cl;Bo2LJ#7 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 dc8455615a73c998d76855ce9651c432a03c267f..6e6bd68ed29c26c6a878914b56907108432e24c1 100644 GIT binary patch delta 3226 zcmcf@TTE0}@Z9CKi|n#;Da&(#WnrNRvMf~)h2^y@taTv}YqbV0un6_K3(FF#Np+k4 zC{4BNv`LeuW{pXsu|LiBk^U&PHnmMO`q9)6Kcr1ts~>8b*#2lcXYNI~wQWL3dXkwl zGiT1soVj!6+-s+W8>fW=#(WzY>%YMmGa%iEGi#`I)i#VfV+D;Fv%#6kJ;A_O$z(7B z^NwH=pZm-ZGkgCXU>SW@#CA~-Uy`;V7 zwdnT$@#ThV#VOFLZz13Ft^zozPb2!AewOA6!`Ip4a!87>g9B62=wxsYOUCeQaJ^21 zV}{gpITV^=0*cDuk)cMgLv?zYwH$daBk(e&LmHFBW+o2?STe-YEwDe$Bsjon5aCSv zx)r9@2G$I}e$gOISLH!0L&@jo8QUoC3#s{Q+Q>h7hMT&4@Ei47N4t%CN%^Yr_>wi* zl?TRT6C5{n(BcgfSw4|z({8TJtkep&XGXPx6_0P{uU9=wVG{dxMlGs z@<6pW5e0hsLOe^iY@!9*9u2;Q4^6qx|2K0Eem8VuO$5A!nOLkTd-l8{#V)670emIE^p zszaV(-lzB#;A2sp(^_?JNXC|g;%vT#<7w3qX>{+nG#VJ32&V>SCPMNUOy`PNiCN`N z?cG@6jek(Fl|I{L^^v$=WrH^zHLJAgfa6uJ<#rSIs}jPhjP}>eu4+Gj{m!q?eda|a z#Y=gPGGeSelT>~qcr@Ztw?Z;}n*yJQ`vHg^8I;eGgYST2TiOuT}yPK;K%gs*2 zCy|cBx6Qms-XWa6xlX%vg@wz%XMIck-)&UGJ5LMi;8BZGj(z6B*dcnlPNZ-OJBi=4 z_=?jVOrt*WTkCE*=u*>B_yx5I8QOlwQwiCk9dgaxpsc$PYM6fz8>kU4yQ3r zmX%8%h6R%-#pzQk66JRW|NLn1$`M$cXk~qbb{CRF=?&U-^|{cl!=(6Do#v4W8t@E%7oIV1v9&rorq7BGhQeoG)>~2KaQRI~*qcxOWMy3R1 z{VME6*=<-r3wm_QSGZ3OL%33jvLMpDRdX0d*}Ev?KkD2!hmT@&yKaNCSKJcC5XVsR zCyp@A3BH1|VWcf8e2g+LZnGm_s=_BIn}XNS!aT0S?|$3-9GxYj9- z%T`Uu@IHkhOC88Akg*8P>Z44&tCxbY7}hcLj@<%B4FXeNG5BoTu=eaBzYCY- zxEy2)(0D6S-!7Syu@YP~jj=d_`BJd){CfB%->uRuLfFY}ocfeVz9mmh< zI88^TjUc7ACs|-g+iE6G+N2nNwn-ho!*0t?SBl#j8;sEwv%;w&BlJ2naM@nMw%@T! z+YOGx49%>T(6VYLOgl>9wp>QaN%8Dg7b&X7^`-Phf^J3g>)P5;*P zVGp>}%T<+ZKmb zoLXxVptWcz>(2Q)pii(YZk9U#Qn-&Q^zde}f4+Sd!$hh7-~9@ylCp7rzMa!IAH1>5 zvoMC=^BQy8=ue*>Xd@&!PLrDU_R3h&Z9eH-4f~#hF>MZ1`Lp<3(r`1sLb|cxs@#-4 zr=__?a9?hL7ql99*RSJ^WFNELp)iv}%G6O&O}7>OfXJ>iKu2Zqf)pUt|LDiEnQ+2xzQ&E$;nz4D z_T+$Sl@>MAs&ck{zK%$`V;*_jH`}lQj?aZmpbkilJ!-bVk8gj(AZ_ELUzonsKZe_o0 zSb-^KG?wB5HB>c{RMfD!kr-CPVUb^GB&liOyT)SV#6c$HMhd}(Yw9B;7&Vj|Ghrx_ z-ghG6f_tvTFd6Z%xuBAYvhrHh(`k=)m&CP-nqxL2L}M zm&hNAgh*S-Lb$&AdB|F$RVD+N06r(7KiUXFixZ}z3Nn-WHF}4KFQVr2YYTZOX)c78 L=JwRN<`UVTU1FJF 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 4c0a78ed4ffaabf9c66e5a75a6fbce1ec3ba9404..49501911ac79401284b2522338d1047129e1654b 100644 GIT binary patch delta 3116 zcmdT`Uu=_A6#u?%bRD##Tf23of7X6wU1fi;1={`T+R|;Xj=5n5Dg-m@+R;L3x3%*R z;x-?Q7z}fqsPLfn!3TM8pcOSSN=!^JQHdm&@IWFy2?By48cmRS&iy`Yw}qEwFW%(* zxxaJox#ymH@A#w-IJn%9%c@eS%58R$ww)C-(2viG5zy1LrDN!w%VQW;e@4TpbYLo~(yq zeMJG(OATF-cqTR0kqD>Lp-42Di4Vu4W854zEtD78z;9Ak@d1vLVPF^smyREda>dxG zniYbrvrkP8mQX_1<4L(;i@@rWTwUUnq24QDG)L{@B z7%pv4F5#L9aCv1vyFSiU0Vbba)yJe+z6SQF6--wL)__W>n7@EQxt|$dQ%*B!Ri&7G zQzhQbFI57&v)5F$OzO&BobO<14?)O9)K(c==}5&kCNEcrD;8@8SpU2^|FT}zxcC@^ z?HaWP)47BUEqaK#bCs86^LKKx`Y>DAqZb1i)OW#cLrF#d&`@GL9Zw}Y#uEuTcOK^2 zbnu?uuC7>~Xaso2@IF5UTa6w*3zNngY*ORLwRaFoltG+yLHNryF0;Kx!<5Tk8!!k5z^qnVqUf zKwhjXH2051By$~^v6g8IC(;wdsSdL7mU@_KD4w6;341++EsrSf7c6M>>A`H2!zGIe zELIaQ2cOkuC_yLexuB$0P~+f=Zw;KVR)gK6Wt$3k#7)IK0#phnUP&GV70!Bq2eC?) z!S7XA9fcbEYPN**&I=YhFt{b2h)P>htLrv9{ zyTtV8&tQt<%5o>0;xZO}wNp$@!1*FfJ5{Ay!jb5}NHj`kp@%P=g1t&|ARb`;63@F= z^o=gOSEo&eW7-uk?NPx_*J>U9ld!hH2P`bkFWI&5m{|*dyOt>f#!aq;sjP>|#o)v6 z%cc!1Ar`lokWsC1WtosFK&Og&9S^ry)P`K|~egjlC|A?3Pdhn- zzsPvG*MUf@m#i@_tp(l|)JhJTlnb7QFF5bVa)Pou7r z=wrnGLToMetrDF<%z_bZ$36u?^a)}khy_sJEYYWkokom;xreLJ8rOTXgI5uI6?I&n z(T(1L?BH|g#e%@265Ygs$0h6#Vnn|o_L+oHc8G2vb_ua0>Qp|7ZX?zWu=x$h29>I8 z0CVT#xNm}J0)KF;ED(U1U=148xl_SW9*mt1cs*DQot+m!-E{*jK}GIvSBQtJ9R_%6 GYxBR#$ZjbB delta 3207 zcmd5;YfMx}6ux(XySuOt;PTjIpWNl?3d`TyvpqI685QlC;XrCWn+HYOV%7rP+H%$kN3|Z-hF>$> z(P~*cJkpl24$-3XDJ3J?YV@Fx}eq2leuNY2Of0=fYr;0e;lKMD^PZBUJp(ucXiS27zuu zZ&Xq(Y>ZR%*|(-7`1({%9M8yCQ4h}Xom70pE6!N6`Y3wOVTGA2j&|S8^4a&{+0aI^ zh>0^yCbCVax$4A?oMjaa!A0{4>PIL~aW^90wCNAM1p3HV1yM zi{D$~S8FFosr?1&SlqsyipzGz$A|Vq6g}XuXGoD^_C&@bVv5<|bfF1`oO-zGD4~k? z9Ln@8=bPC|4X&wG7u;0yRR0TSC)`o1VKLvG%B??+8J7-hLYQhsgs@3=VR%>Xq3Gz5 zu8}=bm2wa^^KeG6v1+(1xC+SyKr0)?wYP>+*;;tuGJ(y-v#H>9@&D*)8u8Sq>_NIm zU{Ga-8JCUKi)$I4Vl5-CkoMn(%#reWSp58 zioVtyjm7%#rh*KU*(ir*cjRD{#09)=9-MwIlZGrhJTiKue=M>u3cWbgZRVi2a4SvH zjjGcf^t5i43V#dS=UyH@F7|Kqn#HhK>i_R`xkSm9Id-EL7yq&FQJH&l3@>?1+5IE~ z~m-E_ZCDY{ADQ8;19gc^T3n@tjK^%SHMgm2X5jK8EblMGMPR(Q*x zhf97VYa;Wg?VTD6DNx#-mb+3~fwwXjGAgrRXXPdZV64iw8ri{Bk-U&nV0*Q4@Y5D6 z+*K=AzN5$r28R(=s$0|6{M>*INx5HLqdbS&TuStoR#9uMf`)4!u?*DKZNaKBz^iqI zV)e|{a&V^3L5d8ByjbodxujdvDB1tC zRt;T^(k_U6tkEj!oNn~44X`#?joS_fOL0&K6G5^q9V`TiVI5qT`NJS_P7nE^V&oij zhf2YYW*WO_y z^3ppd6OrRc6G-pNl!E*>q)Mc#GM)eR_Vx;R5at6bSUh_WeS&Qic>+gj@F{Q> m;FV?#8A;@9+s(pMO96b?@+HJue@evKI#{^fY=M>bnm+;Y;AwRL