Selaa lähdekoodia

[unity] Update Examples.

pharan 8 vuotta sitten
vanhempi
commit
0231f29d96
70 muutettua tiedostoa jossa 6481 lisäystä ja 1734 poistoa
  1. 11 9
      spine-unity/Assets/Examples/Getting Started/1 The Spine GameObject.unity
  2. 6 4
      spine-unity/Assets/Examples/Getting Started/2 Controlling Animation.unity
  3. 145 16
      spine-unity/Assets/Examples/Getting Started/4 Object Oriented Sample.unity
  4. 3148 2
      spine-unity/Assets/Examples/Getting Started/5 Basic Platformer.unity
  5. 1 114
      spine-unity/Assets/Examples/Other Examples/Dragon.unity
  6. 140 18
      spine-unity/Assets/Examples/Other Examples/SkeletonRenderSeparator.unity
  7. 215 187
      spine-unity/Assets/Examples/Other Examples/SkeletonUtility Animated Physics.unity
  8. 272 122
      spine-unity/Assets/Examples/Other Examples/SkeletonUtility Ragdoll.unity
  9. 55 3
      spine-unity/Assets/Examples/Other Examples/SpineGauge.unity
  10. 236 0
      spine-unity/Assets/Examples/Other Examples/Sprite Shaders.unity
  11. 3 0
      spine-unity/Assets/Examples/Scripts/AttackSpineboy.cs
  12. 0 0
      spine-unity/Assets/Examples/Scripts/Getting Started Scripts.meta
  13. 46 64
      spine-unity/Assets/Examples/Scripts/Getting Started Scripts/BasicPlatformerController.cs
  14. 0 0
      spine-unity/Assets/Examples/Scripts/Getting Started Scripts/BasicPlatformerController.cs.meta
  15. 0 0
      spine-unity/Assets/Examples/Scripts/Getting Started Scripts/ConstrainedCamera.cs
  16. 0 0
      spine-unity/Assets/Examples/Scripts/Getting Started Scripts/ConstrainedCamera.cs.meta
  17. 84 84
      spine-unity/Assets/Examples/Scripts/Getting Started Scripts/Raptor.cs
  18. 0 0
      spine-unity/Assets/Examples/Scripts/Getting Started Scripts/Raptor.cs.meta
  19. 108 103
      spine-unity/Assets/Examples/Scripts/Getting Started Scripts/SpineBeginnerTwo.cs
  20. 0 0
      spine-unity/Assets/Examples/Scripts/Getting Started Scripts/SpineBeginnerTwo.cs.meta
  21. 53 53
      spine-unity/Assets/Examples/Scripts/Getting Started Scripts/SpineBlinkPlayer.cs
  22. 0 0
      spine-unity/Assets/Examples/Scripts/Getting Started Scripts/SpineBlinkPlayer.cs.meta
  23. 63 63
      spine-unity/Assets/Examples/Scripts/Getting Started Scripts/SpineboyBeginnerInput.cs
  24. 0 0
      spine-unity/Assets/Examples/Scripts/Getting Started Scripts/SpineboyBeginnerInput.cs.meta
  25. 115 115
      spine-unity/Assets/Examples/Scripts/Getting Started Scripts/SpineboyBeginnerModel.cs
  26. 0 0
      spine-unity/Assets/Examples/Scripts/Getting Started Scripts/SpineboyBeginnerModel.cs.meta
  27. 149 149
      spine-unity/Assets/Examples/Scripts/Getting Started Scripts/SpineboyBeginnerView.cs
  28. 0 0
      spine-unity/Assets/Examples/Scripts/Getting Started Scripts/SpineboyBeginnerView.cs.meta
  29. 48 0
      spine-unity/Assets/Examples/Scripts/HurtFlashEffect.cs
  30. 12 0
      spine-unity/Assets/Examples/Scripts/HurtFlashEffect.cs.meta
  31. 145 145
      spine-unity/Assets/Examples/Spine/Dragon/dragon.atlas.txt
  32. 308 178
      spine-unity/Assets/Examples/Spine/Dragon/dragon.json
  33. BIN
      spine-unity/Assets/Examples/Spine/Dragon/dragon.png
  34. 1 1
      spine-unity/Assets/Examples/Spine/Dragon/dragon.png.meta
  35. BIN
      spine-unity/Assets/Examples/Spine/Dragon/dragon2.png
  36. 1 1
      spine-unity/Assets/Examples/Spine/Dragon/dragon2.png.meta
  37. 1 1
      spine-unity/Assets/Examples/Spine/Dragon/license.txt
  38. 9 0
      spine-unity/Assets/Examples/Spine/spineboy-pro.meta
  39. 293 0
      spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy.atlas.txt
  40. 8 0
      spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy.atlas.txt.meta
  41. 385 0
      spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy.json
  42. 8 0
      spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy.json.meta
  43. BIN
      spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy.png
  44. 68 0
      spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy.png.meta
  45. 16 0
      spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy_Atlas.asset
  46. 9 0
      spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy_Atlas.asset.meta
  47. 26 0
      spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy_Material.mat
  48. 9 0
      spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy_Material.mat.meta
  49. 34 0
      spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy_SkeletonData.asset
  50. 9 0
      spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy_SkeletonData.asset.meta
  51. 0 0
      spine-unity/Assets/Examples/Spine/spineboy-unity.meta
  52. 0 0
      spine-unity/Assets/Examples/Spine/spineboy-unity/Equips.meta
  53. 0 0
      spine-unity/Assets/Examples/Spine/spineboy-unity/Equips/freezegun.png
  54. 0 0
      spine-unity/Assets/Examples/Spine/spineboy-unity/Equips/freezegun.png.meta
  55. 0 0
      spine-unity/Assets/Examples/Spine/spineboy-unity/Equips/goggles-tacticalvisor.png
  56. 0 0
      spine-unity/Assets/Examples/Spine/spineboy-unity/Equips/goggles-tacticalvisor.png.meta
  57. 182 298
      spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy-unity.json
  58. 0 0
      spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy-unity.json.meta
  59. 16 4
      spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy-unity_SkeletonData.asset
  60. 0 0
      spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy-unity_SkeletonData.asset.meta
  61. 0 0
      spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy.atlas.txt
  62. 0 0
      spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy.atlas.txt.meta
  63. 0 0
      spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy.png
  64. 0 0
      spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy.png.meta
  65. 0 0
      spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy_Atlas.asset
  66. 0 0
      spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy_Atlas.asset.meta
  67. 33 0
      spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy_Material Fill.mat
  68. 8 0
      spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy_Material Fill.mat.meta
  69. 2 0
      spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy_Material.mat
  70. 0 0
      spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy_Material.mat.meta

+ 11 - 9
spine-unity/Assets/Examples/Getting Started/1 The Spine GameObject.unity

@@ -260,25 +260,27 @@ TextMesh:
   m_PrefabParentObject: {fileID: 0}
   m_PrefabParentObject: {fileID: 0}
   m_PrefabInternal: {fileID: 0}
   m_PrefabInternal: {fileID: 0}
   m_GameObject: {fileID: 199409354}
   m_GameObject: {fileID: 199409354}
-  m_Text: 'Spine GameObjects are GameObjects
+  m_Text: '"Spine GameObjects" are GameObjects with
 
 
-    with these components on it:
+    a SkeletonAnimation
 
 
-    - MeshFilter
+    (or SkeletonRenderer, SkeletonGraphic or SkeletonAnimator)
 
 
-    - MeshRenderer
-
-    - SkeletonAnimation
+    and its requisite Components.
 
 
 
 
     <b>SkeletonAnimation</b>
     <b>SkeletonAnimation</b>
 
 
     is the Spine component you''ll likely be using most often.
     is the Spine component you''ll likely be using most often.
 
 
+    It uses a Skeleton Data Asset.
+
+
+    <b>SkeletonData Asset</b>
 
 
-    It uses a Skeleton Data Asset (the Unity asset files with the Spine icon).
+    (the asset files with the Spine icon)
 
 
-    Skeleton Data Asset ties together your Spine exports (.json, .png and .atlas.txt)
+    SkeletonDataAssets ties together your Spine exports (.json, .png and .atlas.txt)
 
 
     See the Spine-Unity Documentation to learn more about the asset files.
     See the Spine-Unity Documentation to learn more about the asset files.
 
 
@@ -556,7 +558,7 @@ TextMesh:
   m_PrefabParentObject: {fileID: 0}
   m_PrefabParentObject: {fileID: 0}
   m_PrefabInternal: {fileID: 0}
   m_PrefabInternal: {fileID: 0}
   m_GameObject: {fileID: 1945923976}
   m_GameObject: {fileID: 1945923976}
-  m_Text: Enter <b>PLAY MODE</b> in Unity to see Spineboy animate.
+  m_Text: Enter <b>PLAY MODE</b> in Unity to see Spine-Unity Girl animate.
   m_OffsetZ: 0
   m_OffsetZ: 0
   m_CharacterSize: 0.12
   m_CharacterSize: 0.12
   m_LineSpacing: 1
   m_LineSpacing: 1

+ 6 - 4
spine-unity/Assets/Examples/Getting Started/2 Controlling Animation.unity

@@ -147,7 +147,7 @@ TextMesh:
   m_GameObject: {fileID: 199409354}
   m_GameObject: {fileID: 199409354}
   m_Text: 'This scene will show you an example
   m_Text: 'This scene will show you an example
 
 
-    of basic animation control through code.
+    of basic animation code.
 
 
 
 
     Open the SpineBeginnerTwo script attached
     Open the SpineBeginnerTwo script attached
@@ -317,8 +317,8 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d247ba06193faa74d9335f5481b2b56c, type: 3}
   m_Script: {fileID: 11500000, guid: d247ba06193faa74d9335f5481b2b56c, type: 3}
   m_Name: 
   m_Name: 
   m_EditorClassIdentifier: 
   m_EditorClassIdentifier: 
-  skeletonDataAsset: {fileID: 11400000, guid: a467507a4ffb1d542a558739b2fede77, type: 2}
-  initialSkinName: base
+  skeletonDataAsset: {fileID: 11400000, guid: 45a15bf53b040de42b2adbc759a40203, type: 2}
+  initialSkinName: default
   initialFlipX: 0
   initialFlipX: 0
   initialFlipY: 0
   initialFlipY: 0
   separatorSlotNames: []
   separatorSlotNames: []
@@ -349,7 +349,7 @@ MeshRenderer:
   m_LightProbeUsage: 1
   m_LightProbeUsage: 1
   m_ReflectionProbeUsage: 1
   m_ReflectionProbeUsage: 1
   m_Materials:
   m_Materials:
-  - {fileID: 2100000, guid: 1455e88fdb81ccc45bdeaedd657bad4d, type: 2}
+  - {fileID: 2100000, guid: 86873d92b9c6412428e6e2d4f827c88b, type: 2}
   m_StaticBatchInfo:
   m_StaticBatchInfo:
     firstSubMesh: 0
     firstSubMesh: 0
     subMeshCount: 0
     subMeshCount: 0
@@ -403,6 +403,8 @@ MonoBehaviour:
   idleAnimationName: idle
   idleAnimationName: idle
   walkAnimationName: walk
   walkAnimationName: walk
   shootAnimationName: shoot
   shootAnimationName: shoot
+  idleTurnAnimationName: idle-turn
+  runToIdleAnimationName: run-to-idle
 --- !u!1 &926099111
 --- !u!1 &926099111
 GameObject:
 GameObject:
   m_ObjectHideFlags: 0
   m_ObjectHideFlags: 0

+ 145 - 16
spine-unity/Assets/Examples/Getting Started/4 Object Oriented Sample.unity

@@ -152,7 +152,7 @@ MonoBehaviour:
   state: 0
   state: 0
   facingLeft: 0
   facingLeft: 0
   currentSpeed: 0
   currentSpeed: 0
-  shootInterval: 0.1
+  shootInterval: 0.15
 --- !u!1 &320097517
 --- !u!1 &320097517
 GameObject:
 GameObject:
   m_ObjectHideFlags: 0
   m_ObjectHideFlags: 0
@@ -854,7 +854,14 @@ TextMesh:
 
 
     See the PLAYER INPUT, PLAYER Spineboy and VIEW Spineboy
     See the PLAYER INPUT, PLAYER Spineboy and VIEW Spineboy
 
 
-    GameObjects and the scripts on them, to learn more.'
+    GameObjects and the scripts on them, to learn more.
+
+
+    You may opt to arrange your scripts in a different way, of course.
+
+    But compartmentalizing concerns among scripts by the right amount can
+
+    help you manage your script logic better.'
   m_OffsetZ: 0
   m_OffsetZ: 0
   m_CharacterSize: 0.12
   m_CharacterSize: 0.12
   m_LineSpacing: 1
   m_LineSpacing: 1
@@ -1234,8 +1241,10 @@ ParticleSystem:
   playOnAwake: 0
   playOnAwake: 0
   autoRandomSeed: 1
   autoRandomSeed: 1
   startDelay:
   startDelay:
+    serializedVersion: 2
     minMaxState: 0
     minMaxState: 0
     scalar: 0
     scalar: 0
+    minScalar: 0
     maxCurve:
     maxCurve:
       serializedVersion: 2
       serializedVersion: 2
       m_Curve:
       m_Curve:
@@ -1268,8 +1277,10 @@ ParticleSystem:
     serializedVersion: 3
     serializedVersion: 3
     enabled: 1
     enabled: 1
     startLifetime:
     startLifetime:
+      serializedVersion: 2
       minMaxState: 3
       minMaxState: 3
       scalar: 0.5
       scalar: 0.5
+      minScalar: 0.3
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1295,8 +1306,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 0
         m_RotationOrder: 0
     startSpeed:
     startSpeed:
+      serializedVersion: 2
       minMaxState: 3
       minMaxState: 3
       scalar: 35
       scalar: 35
+      minScalar: 5
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1324,6 +1337,8 @@ ParticleSystem:
     startColor:
     startColor:
       serializedVersion: 2
       serializedVersion: 2
       minMaxState: 2
       minMaxState: 2
+      minColor: {r: 1, g: 0.98039216, b: 0.7294118, a: 1}
+      maxColor: {r: 1, g: 0.5019608, b: 0.11764706, a: 1}
       maxGradient:
       maxGradient:
         serializedVersion: 2
         serializedVersion: 2
         key0: {r: 1, g: 1, b: 1, a: 1}
         key0: {r: 1, g: 1, b: 1, a: 1}
@@ -1382,11 +1397,11 @@ ParticleSystem:
         m_Mode: 0
         m_Mode: 0
         m_NumColorKeys: 2
         m_NumColorKeys: 2
         m_NumAlphaKeys: 2
         m_NumAlphaKeys: 2
-      minColor: {r: 1, g: 0.98039216, b: 0.7294118, a: 1}
-      maxColor: {r: 1, g: 0.5019608, b: 0.11764706, a: 1}
     startSize:
     startSize:
+      serializedVersion: 2
       minMaxState: 3
       minMaxState: 3
       scalar: 0.5
       scalar: 0.5
+      minScalar: 0.2
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1412,8 +1427,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 0
         m_RotationOrder: 0
     startSizeY:
     startSizeY:
+      serializedVersion: 2
       minMaxState: 3
       minMaxState: 3
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1439,8 +1456,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 0
         m_RotationOrder: 0
     startSizeZ:
     startSizeZ:
+      serializedVersion: 2
       minMaxState: 3
       minMaxState: 3
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1466,8 +1485,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 0
         m_RotationOrder: 0
     startRotationX:
     startRotationX:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1505,8 +1526,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     startRotationY:
     startRotationY:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1544,8 +1567,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     startRotation:
     startRotation:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1587,8 +1612,10 @@ ParticleSystem:
     size3D: 0
     size3D: 0
     rotation3D: 0
     rotation3D: 0
     gravityModifier:
     gravityModifier:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1639,8 +1666,10 @@ ParticleSystem:
       mode: 0
       mode: 0
       spread: 0
       spread: 0
       speed:
       speed:
+        serializedVersion: 2
         minMaxState: 0
         minMaxState: 0
         scalar: 1
         scalar: 1
+        minScalar: 0
         maxCurve:
         maxCurve:
           serializedVersion: 2
           serializedVersion: 2
           m_Curve:
           m_Curve:
@@ -1682,8 +1711,10 @@ ParticleSystem:
       mode: 0
       mode: 0
       spread: 0
       spread: 0
       speed:
       speed:
+        serializedVersion: 2
         minMaxState: 0
         minMaxState: 0
         scalar: 1
         scalar: 1
+        minScalar: 0
         maxCurve:
         maxCurve:
           serializedVersion: 2
           serializedVersion: 2
           m_Curve:
           m_Curve:
@@ -1736,8 +1767,10 @@ ParticleSystem:
     enabled: 1
     enabled: 1
     serializedVersion: 4
     serializedVersion: 4
     rateOverTime:
     rateOverTime:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1775,8 +1808,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     rateOverDistance:
     rateOverDistance:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1823,8 +1858,10 @@ ParticleSystem:
   SizeModule:
   SizeModule:
     enabled: 1
     enabled: 1
     curve:
     curve:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1868,8 +1905,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     y:
     y:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1907,8 +1946,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     z:
     z:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1949,8 +1990,10 @@ ParticleSystem:
   RotationModule:
   RotationModule:
     enabled: 0
     enabled: 0
     x:
     x:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1988,8 +2031,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     y:
     y:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2027,8 +2072,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     curve:
     curve:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0.7853982
       scalar: 0.7853982
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2071,6 +2118,8 @@ ParticleSystem:
     gradient:
     gradient:
       serializedVersion: 2
       serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
+      minColor: {r: 1, g: 1, b: 1, a: 1}
+      maxColor: {r: 1, g: 1, b: 1, a: 1}
       maxGradient:
       maxGradient:
         serializedVersion: 2
         serializedVersion: 2
         key0: {r: 1, g: 1, b: 1, a: 1}
         key0: {r: 1, g: 1, b: 1, a: 1}
@@ -2129,13 +2178,13 @@ ParticleSystem:
         m_Mode: 0
         m_Mode: 0
         m_NumColorKeys: 2
         m_NumColorKeys: 2
         m_NumAlphaKeys: 2
         m_NumAlphaKeys: 2
-      minColor: {r: 1, g: 1, b: 1, a: 1}
-      maxColor: {r: 1, g: 1, b: 1, a: 1}
   UVModule:
   UVModule:
     enabled: 0
     enabled: 0
     frameOverTime:
     frameOverTime:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 0.9999
       scalar: 0.9999
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2173,8 +2222,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     startFrame:
     startFrame:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2223,8 +2274,10 @@ ParticleSystem:
   VelocityModule:
   VelocityModule:
     enabled: 0
     enabled: 0
     x:
     x:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2262,8 +2315,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     y:
     y:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2301,8 +2356,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     z:
     z:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2344,8 +2401,10 @@ ParticleSystem:
     enabled: 0
     enabled: 0
     m_Mode: 0
     m_Mode: 0
     m_Curve:
     m_Curve:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2385,8 +2444,10 @@ ParticleSystem:
   ForceModule:
   ForceModule:
     enabled: 0
     enabled: 0
     x:
     x:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2424,8 +2485,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     y:
     y:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2463,8 +2526,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     z:
     z:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2509,8 +2574,10 @@ ParticleSystem:
   ClampVelocityModule:
   ClampVelocityModule:
     enabled: 1
     enabled: 1
     x:
     x:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2548,8 +2615,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     y:
     y:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2587,8 +2656,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     z:
     z:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2626,8 +2697,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     magnitude:
     magnitude:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 20
       scalar: 20
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2670,8 +2743,10 @@ ParticleSystem:
   NoiseModule:
   NoiseModule:
     enabled: 0
     enabled: 0
     strength:
     strength:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2709,8 +2784,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     strengthY:
     strengthY:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2748,8 +2825,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     strengthZ:
     strengthZ:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2794,8 +2873,10 @@ ParticleSystem:
     octaveScale: 2
     octaveScale: 2
     quality: 2
     quality: 2
     scrollSpeed:
     scrollSpeed:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2833,8 +2914,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     remap:
     remap:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2872,8 +2955,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     remapY:
     remapY:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2911,8 +2996,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     remapZ:
     remapZ:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2953,8 +3040,10 @@ ParticleSystem:
   SizeBySpeedModule:
   SizeBySpeedModule:
     enabled: 0
     enabled: 0
     curve:
     curve:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2992,8 +3081,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     y:
     y:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3031,8 +3122,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     z:
     z:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3074,8 +3167,10 @@ ParticleSystem:
   RotationBySpeedModule:
   RotationBySpeedModule:
     enabled: 0
     enabled: 0
     x:
     x:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3113,8 +3208,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     y:
     y:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3152,8 +3249,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     curve:
     curve:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0.7853982
       scalar: 0.7853982
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3197,6 +3296,8 @@ ParticleSystem:
     gradient:
     gradient:
       serializedVersion: 2
       serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
+      minColor: {r: 1, g: 1, b: 1, a: 1}
+      maxColor: {r: 1, g: 1, b: 1, a: 1}
       maxGradient:
       maxGradient:
         serializedVersion: 2
         serializedVersion: 2
         key0: {r: 1, g: 1, b: 1, a: 1}
         key0: {r: 1, g: 1, b: 1, a: 1}
@@ -3255,8 +3356,6 @@ ParticleSystem:
         m_Mode: 0
         m_Mode: 0
         m_NumColorKeys: 2
         m_NumColorKeys: 2
         m_NumAlphaKeys: 2
         m_NumAlphaKeys: 2
-      minColor: {r: 1, g: 1, b: 1, a: 1}
-      maxColor: {r: 1, g: 1, b: 1, a: 1}
     range: {x: 0, y: 1}
     range: {x: 0, y: 1}
   CollisionModule:
   CollisionModule:
     enabled: 0
     enabled: 0
@@ -3270,8 +3369,10 @@ ParticleSystem:
     plane4: {fileID: 0}
     plane4: {fileID: 0}
     plane5: {fileID: 0}
     plane5: {fileID: 0}
     m_Dampen:
     m_Dampen:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3309,8 +3410,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     m_Bounce:
     m_Bounce:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3348,8 +3451,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     m_EnergyLossOnCollision:
     m_EnergyLossOnCollision:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3427,8 +3532,10 @@ ParticleSystem:
     range: 1
     range: 1
     intensity: 1
     intensity: 1
     rangeCurve:
     rangeCurve:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3466,8 +3573,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     intensityCurve:
     intensityCurve:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3509,8 +3618,10 @@ ParticleSystem:
     enabled: 0
     enabled: 0
     ratio: 1
     ratio: 1
     lifetime:
     lifetime:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3557,6 +3668,8 @@ ParticleSystem:
     colorOverLifetime:
     colorOverLifetime:
       serializedVersion: 2
       serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
+      minColor: {r: 1, g: 1, b: 1, a: 1}
+      maxColor: {r: 1, g: 1, b: 1, a: 1}
       maxGradient:
       maxGradient:
         serializedVersion: 2
         serializedVersion: 2
         key0: {r: 1, g: 1, b: 1, a: 1}
         key0: {r: 1, g: 1, b: 1, a: 1}
@@ -3615,11 +3728,11 @@ ParticleSystem:
         m_Mode: 0
         m_Mode: 0
         m_NumColorKeys: 2
         m_NumColorKeys: 2
         m_NumAlphaKeys: 2
         m_NumAlphaKeys: 2
-      minColor: {r: 1, g: 1, b: 1, a: 1}
-      maxColor: {r: 1, g: 1, b: 1, a: 1}
     widthOverTrail:
     widthOverTrail:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3659,6 +3772,8 @@ ParticleSystem:
     colorOverTrail:
     colorOverTrail:
       serializedVersion: 2
       serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
+      minColor: {r: 1, g: 1, b: 1, a: 1}
+      maxColor: {r: 1, g: 1, b: 1, a: 1}
       maxGradient:
       maxGradient:
         serializedVersion: 2
         serializedVersion: 2
         key0: {r: 1, g: 1, b: 1, a: 1}
         key0: {r: 1, g: 1, b: 1, a: 1}
@@ -3717,8 +3832,6 @@ ParticleSystem:
         m_Mode: 0
         m_Mode: 0
         m_NumColorKeys: 2
         m_NumColorKeys: 2
         m_NumAlphaKeys: 2
         m_NumAlphaKeys: 2
-      minColor: {r: 1, g: 1, b: 1, a: 1}
-      maxColor: {r: 1, g: 1, b: 1, a: 1}
   CustomDataModule:
   CustomDataModule:
     enabled: 0
     enabled: 0
     mode0: 0
     mode0: 0
@@ -3726,6 +3839,8 @@ ParticleSystem:
     color0:
     color0:
       serializedVersion: 2
       serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
+      minColor: {r: 1, g: 1, b: 1, a: 1}
+      maxColor: {r: 1, g: 1, b: 1, a: 1}
       maxGradient:
       maxGradient:
         serializedVersion: 2
         serializedVersion: 2
         key0: {r: 1, g: 1, b: 1, a: 1}
         key0: {r: 1, g: 1, b: 1, a: 1}
@@ -3784,11 +3899,11 @@ ParticleSystem:
         m_Mode: 0
         m_Mode: 0
         m_NumColorKeys: 2
         m_NumColorKeys: 2
         m_NumAlphaKeys: 2
         m_NumAlphaKeys: 2
-      minColor: {r: 1, g: 1, b: 1, a: 1}
-      maxColor: {r: 1, g: 1, b: 1, a: 1}
     vector0_0:
     vector0_0:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3826,8 +3941,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     vector0_1:
     vector0_1:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3865,8 +3982,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     vector0_2:
     vector0_2:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3904,8 +4023,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     vector0_3:
     vector0_3:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3947,6 +4068,8 @@ ParticleSystem:
     color1:
     color1:
       serializedVersion: 2
       serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
+      minColor: {r: 1, g: 1, b: 1, a: 1}
+      maxColor: {r: 1, g: 1, b: 1, a: 1}
       maxGradient:
       maxGradient:
         serializedVersion: 2
         serializedVersion: 2
         key0: {r: 1, g: 1, b: 1, a: 1}
         key0: {r: 1, g: 1, b: 1, a: 1}
@@ -4005,11 +4128,11 @@ ParticleSystem:
         m_Mode: 0
         m_Mode: 0
         m_NumColorKeys: 2
         m_NumColorKeys: 2
         m_NumAlphaKeys: 2
         m_NumAlphaKeys: 2
-      minColor: {r: 1, g: 1, b: 1, a: 1}
-      maxColor: {r: 1, g: 1, b: 1, a: 1}
     vector1_0:
     vector1_0:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -4047,8 +4170,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     vector1_1:
     vector1_1:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -4086,8 +4211,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     vector1_2:
     vector1_2:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -4125,8 +4252,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     vector1_3:
     vector1_3:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 3148 - 2
spine-unity/Assets/Examples/Getting Started/5 Basic Platformer.unity


+ 1 - 114
spine-unity/Assets/Examples/Other Examples/Dragon.unity

@@ -242,120 +242,6 @@ Transform:
   m_Father: {fileID: 0}
   m_Father: {fileID: 0}
   m_RootOrder: 1
   m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &757780186
-GameObject:
-  m_ObjectHideFlags: 0
-  m_PrefabParentObject: {fileID: 100000, guid: d51ed5943e10bcb4394b5eec480293f8, type: 2}
-  m_PrefabInternal: {fileID: 0}
-  serializedVersion: 5
-  m_Component:
-  - component: {fileID: 757780190}
-  - component: {fileID: 757780189}
-  - component: {fileID: 757780188}
-  - component: {fileID: 757780187}
-  m_Layer: 0
-  m_Name: dragon (1)
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!114 &757780187
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_PrefabParentObject: {fileID: 11400000, guid: d51ed5943e10bcb4394b5eec480293f8,
-    type: 2}
-  m_PrefabInternal: {fileID: 0}
-  m_GameObject: {fileID: 757780186}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: d247ba06193faa74d9335f5481b2b56c, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  skeletonDataAsset: {fileID: 11400000, guid: 76506fa7fbeed084ab2dfb084648c628, type: 2}
-  initialSkinName: default
-  initialFlipX: 0
-  initialFlipY: 0
-  separatorSlotNames: []
-  zSpacing: 0
-  useClipping: 1
-  immutableTriangles: 0
-  pmaVertexColors: 1
-  clearStateOnDisable: 0
-  tintBlack: 0
-  singleSubmesh: 0
-  addNormals: 1
-  calculateTangents: 0
-  logErrors: 0
-  disableRenderingOnOverride: 1
-  _animationName: flying
-  loop: 1
-  timeScale: 1
---- !u!23 &757780188
-MeshRenderer:
-  m_ObjectHideFlags: 0
-  m_PrefabParentObject: {fileID: 2300000, guid: d51ed5943e10bcb4394b5eec480293f8,
-    type: 2}
-  m_PrefabInternal: {fileID: 0}
-  m_GameObject: {fileID: 757780186}
-  m_Enabled: 1
-  m_CastShadows: 1
-  m_ReceiveShadows: 1
-  m_MotionVectors: 1
-  m_LightProbeUsage: 0
-  m_ReflectionProbeUsage: 1
-  m_Materials:
-  - {fileID: 2100000, guid: d58543c96f991934ca874395eb40222c, type: 2}
-  - {fileID: 2100000, guid: 3277fd5561d95724e83c6ca4a1dd28a4, type: 2}
-  - {fileID: 2100000, guid: d58543c96f991934ca874395eb40222c, type: 2}
-  - {fileID: 2100000, guid: 3277fd5561d95724e83c6ca4a1dd28a4, type: 2}
-  - {fileID: 2100000, guid: d58543c96f991934ca874395eb40222c, type: 2}
-  - {fileID: 2100000, guid: 3277fd5561d95724e83c6ca4a1dd28a4, type: 2}
-  - {fileID: 2100000, guid: d58543c96f991934ca874395eb40222c, type: 2}
-  - {fileID: 2100000, guid: 3277fd5561d95724e83c6ca4a1dd28a4, type: 2}
-  - {fileID: 2100000, guid: d58543c96f991934ca874395eb40222c, type: 2}
-  - {fileID: 2100000, guid: 3277fd5561d95724e83c6ca4a1dd28a4, type: 2}
-  - {fileID: 2100000, guid: d58543c96f991934ca874395eb40222c, type: 2}
-  - {fileID: 2100000, guid: 3277fd5561d95724e83c6ca4a1dd28a4, type: 2}
-  m_StaticBatchInfo:
-    firstSubMesh: 0
-    subMeshCount: 0
-  m_StaticBatchRoot: {fileID: 0}
-  m_ProbeAnchor: {fileID: 0}
-  m_LightProbeVolumeOverride: {fileID: 0}
-  m_ScaleInLightmap: 1
-  m_PreserveUVs: 0
-  m_IgnoreNormalsForChartDetection: 0
-  m_ImportantGI: 0
-  m_SelectedEditorRenderState: 3
-  m_MinimumChartSize: 4
-  m_AutoUVMaxDistance: 0.5
-  m_AutoUVMaxAngle: 89
-  m_LightmapParameters: {fileID: 0}
-  m_SortingLayerID: 0
-  m_SortingLayer: 0
-  m_SortingOrder: 0
---- !u!33 &757780189
-MeshFilter:
-  m_ObjectHideFlags: 0
-  m_PrefabParentObject: {fileID: 3300000, guid: d51ed5943e10bcb4394b5eec480293f8,
-    type: 2}
-  m_PrefabInternal: {fileID: 0}
-  m_GameObject: {fileID: 757780186}
-  m_Mesh: {fileID: 0}
---- !u!4 &757780190
-Transform:
-  m_ObjectHideFlags: 0
-  m_PrefabParentObject: {fileID: 400000, guid: d51ed5943e10bcb4394b5eec480293f8, type: 2}
-  m_PrefabInternal: {fileID: 0}
-  m_GameObject: {fileID: 757780186}
-  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 1, y: 1, z: 1}
-  m_Children: []
-  m_Father: {fileID: 0}
-  m_RootOrder: 4
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1604340971
 --- !u!1 &1604340971
 GameObject:
 GameObject:
   m_ObjectHideFlags: 0
   m_ObjectHideFlags: 0
@@ -520,6 +406,7 @@ MeshRenderer:
   - {fileID: 2100000, guid: 3277fd5561d95724e83c6ca4a1dd28a4, type: 2}
   - {fileID: 2100000, guid: 3277fd5561d95724e83c6ca4a1dd28a4, type: 2}
   - {fileID: 2100000, guid: d58543c96f991934ca874395eb40222c, type: 2}
   - {fileID: 2100000, guid: d58543c96f991934ca874395eb40222c, type: 2}
   - {fileID: 2100000, guid: 3277fd5561d95724e83c6ca4a1dd28a4, type: 2}
   - {fileID: 2100000, guid: 3277fd5561d95724e83c6ca4a1dd28a4, type: 2}
+  - {fileID: 2100000, guid: d58543c96f991934ca874395eb40222c, type: 2}
   m_StaticBatchInfo:
   m_StaticBatchInfo:
     firstSubMesh: 0
     firstSubMesh: 0
     subMeshCount: 0
     subMeshCount: 0

+ 140 - 18
spine-unity/Assets/Examples/Other Examples/SkeletonRenderSeparator.unity

@@ -249,8 +249,8 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d247ba06193faa74d9335f5481b2b56c, type: 3}
   m_Script: {fileID: 11500000, guid: d247ba06193faa74d9335f5481b2b56c, type: 3}
   m_Name: 
   m_Name: 
   m_EditorClassIdentifier: 
   m_EditorClassIdentifier: 
-  skeletonDataAsset: {fileID: 11400000, guid: 44691b56ed7d1f04da0cbc2a52a91b8d, type: 2}
-  initialSkinName: default
+  skeletonDataAsset: {fileID: 11400000, guid: a467507a4ffb1d542a558739b2fede77, type: 2}
+  initialSkinName: base
   initialFlipX: 0
   initialFlipX: 0
   initialFlipY: 0
   initialFlipY: 0
   separatorSlotNames:
   separatorSlotNames:
@@ -519,8 +519,10 @@ ParticleSystem:
   playOnAwake: 1
   playOnAwake: 1
   autoRandomSeed: 1
   autoRandomSeed: 1
   startDelay:
   startDelay:
+    serializedVersion: 2
     minMaxState: 0
     minMaxState: 0
     scalar: 0
     scalar: 0
+    minScalar: 0
     maxCurve:
     maxCurve:
       serializedVersion: 2
       serializedVersion: 2
       m_Curve:
       m_Curve:
@@ -565,8 +567,10 @@ ParticleSystem:
     serializedVersion: 3
     serializedVersion: 3
     enabled: 1
     enabled: 1
     startLifetime:
     startLifetime:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -604,8 +608,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     startSpeed:
     startSpeed:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1.5
       scalar: 1.5
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -645,6 +651,8 @@ ParticleSystem:
     startColor:
     startColor:
       serializedVersion: 2
       serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
+      minColor: {r: 1, g: 1, b: 1, a: 1}
+      maxColor: {r: 1, g: 0.5176471, b: 0, a: 1}
       maxGradient:
       maxGradient:
         serializedVersion: 2
         serializedVersion: 2
         key0: {r: 1, g: 1, b: 1, a: 1}
         key0: {r: 1, g: 1, b: 1, a: 1}
@@ -703,11 +711,11 @@ ParticleSystem:
         m_Mode: 0
         m_Mode: 0
         m_NumColorKeys: 2
         m_NumColorKeys: 2
         m_NumAlphaKeys: 2
         m_NumAlphaKeys: 2
-      minColor: {r: 1, g: 1, b: 1, a: 1}
-      maxColor: {r: 1, g: 0.5176471, b: 0, a: 1}
     startSize:
     startSize:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0.5
       scalar: 0.5
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -745,8 +753,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     startSizeY:
     startSizeY:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -784,8 +794,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     startSizeZ:
     startSizeZ:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -823,8 +835,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     startRotationX:
     startRotationX:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -862,8 +876,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     startRotationY:
     startRotationY:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -901,8 +917,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     startRotation:
     startRotation:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -944,8 +962,10 @@ ParticleSystem:
     size3D: 0
     size3D: 0
     rotation3D: 0
     rotation3D: 0
     gravityModifier:
     gravityModifier:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -996,8 +1016,10 @@ ParticleSystem:
       mode: 0
       mode: 0
       spread: 0
       spread: 0
       speed:
       speed:
+        serializedVersion: 2
         minMaxState: 0
         minMaxState: 0
         scalar: 1
         scalar: 1
+        minScalar: 0
         maxCurve:
         maxCurve:
           serializedVersion: 2
           serializedVersion: 2
           m_Curve:
           m_Curve:
@@ -1039,8 +1061,10 @@ ParticleSystem:
       mode: 0
       mode: 0
       spread: 0
       spread: 0
       speed:
       speed:
+        serializedVersion: 2
         minMaxState: 0
         minMaxState: 0
         scalar: 1
         scalar: 1
+        minScalar: 0
         maxCurve:
         maxCurve:
           serializedVersion: 2
           serializedVersion: 2
           m_Curve:
           m_Curve:
@@ -1093,8 +1117,10 @@ ParticleSystem:
     enabled: 1
     enabled: 1
     serializedVersion: 4
     serializedVersion: 4
     rateOverTime:
     rateOverTime:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 50
       scalar: 50
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1132,8 +1158,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     rateOverDistance:
     rateOverDistance:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1175,8 +1203,10 @@ ParticleSystem:
   SizeModule:
   SizeModule:
     enabled: 1
     enabled: 1
     curve:
     curve:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1220,8 +1250,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     y:
     y:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1259,8 +1291,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     z:
     z:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1301,8 +1335,10 @@ ParticleSystem:
   RotationModule:
   RotationModule:
     enabled: 0
     enabled: 0
     x:
     x:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1340,8 +1376,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     y:
     y:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1379,8 +1417,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     curve:
     curve:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0.7853982
       scalar: 0.7853982
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1423,6 +1463,8 @@ ParticleSystem:
     gradient:
     gradient:
       serializedVersion: 2
       serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
+      minColor: {r: 1, g: 1, b: 1, a: 1}
+      maxColor: {r: 1, g: 1, b: 1, a: 1}
       maxGradient:
       maxGradient:
         serializedVersion: 2
         serializedVersion: 2
         key0: {r: 1, g: 1, b: 1, a: 1}
         key0: {r: 1, g: 1, b: 1, a: 1}
@@ -1481,13 +1523,13 @@ ParticleSystem:
         m_Mode: 0
         m_Mode: 0
         m_NumColorKeys: 2
         m_NumColorKeys: 2
         m_NumAlphaKeys: 2
         m_NumAlphaKeys: 2
-      minColor: {r: 1, g: 1, b: 1, a: 1}
-      maxColor: {r: 1, g: 1, b: 1, a: 1}
   UVModule:
   UVModule:
     enabled: 0
     enabled: 0
     frameOverTime:
     frameOverTime:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 0.9999
       scalar: 0.9999
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1525,8 +1567,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     startFrame:
     startFrame:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1575,8 +1619,10 @@ ParticleSystem:
   VelocityModule:
   VelocityModule:
     enabled: 0
     enabled: 0
     x:
     x:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1614,8 +1660,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     y:
     y:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1653,8 +1701,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     z:
     z:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1696,8 +1746,10 @@ ParticleSystem:
     enabled: 0
     enabled: 0
     m_Mode: 0
     m_Mode: 0
     m_Curve:
     m_Curve:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1737,8 +1789,10 @@ ParticleSystem:
   ForceModule:
   ForceModule:
     enabled: 0
     enabled: 0
     x:
     x:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1776,8 +1830,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     y:
     y:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1815,8 +1871,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     z:
     z:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1861,8 +1919,10 @@ ParticleSystem:
   ClampVelocityModule:
   ClampVelocityModule:
     enabled: 1
     enabled: 1
     x:
     x:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1900,8 +1960,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     y:
     y:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1939,8 +2001,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     z:
     z:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -1978,8 +2042,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     magnitude:
     magnitude:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 20
       scalar: 20
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2022,8 +2088,10 @@ ParticleSystem:
   NoiseModule:
   NoiseModule:
     enabled: 0
     enabled: 0
     strength:
     strength:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2061,8 +2129,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     strengthY:
     strengthY:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2100,8 +2170,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     strengthZ:
     strengthZ:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2146,8 +2218,10 @@ ParticleSystem:
     octaveScale: 2
     octaveScale: 2
     quality: 2
     quality: 2
     scrollSpeed:
     scrollSpeed:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2185,8 +2259,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     remap:
     remap:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2224,8 +2300,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     remapY:
     remapY:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2263,8 +2341,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     remapZ:
     remapZ:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2305,8 +2385,10 @@ ParticleSystem:
   SizeBySpeedModule:
   SizeBySpeedModule:
     enabled: 0
     enabled: 0
     curve:
     curve:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2344,8 +2426,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     y:
     y:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2383,8 +2467,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     z:
     z:
+      serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2426,8 +2512,10 @@ ParticleSystem:
   RotationBySpeedModule:
   RotationBySpeedModule:
     enabled: 0
     enabled: 0
     x:
     x:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2465,8 +2553,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     y:
     y:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2504,8 +2594,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     curve:
     curve:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0.7853982
       scalar: 0.7853982
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2549,6 +2641,8 @@ ParticleSystem:
     gradient:
     gradient:
       serializedVersion: 2
       serializedVersion: 2
       minMaxState: 1
       minMaxState: 1
+      minColor: {r: 1, g: 1, b: 1, a: 1}
+      maxColor: {r: 1, g: 1, b: 1, a: 1}
       maxGradient:
       maxGradient:
         serializedVersion: 2
         serializedVersion: 2
         key0: {r: 1, g: 1, b: 1, a: 1}
         key0: {r: 1, g: 1, b: 1, a: 1}
@@ -2607,8 +2701,6 @@ ParticleSystem:
         m_Mode: 0
         m_Mode: 0
         m_NumColorKeys: 2
         m_NumColorKeys: 2
         m_NumAlphaKeys: 2
         m_NumAlphaKeys: 2
-      minColor: {r: 1, g: 1, b: 1, a: 1}
-      maxColor: {r: 1, g: 1, b: 1, a: 1}
     range: {x: 0, y: 1}
     range: {x: 0, y: 1}
   CollisionModule:
   CollisionModule:
     enabled: 0
     enabled: 0
@@ -2622,8 +2714,10 @@ ParticleSystem:
     plane4: {fileID: 0}
     plane4: {fileID: 0}
     plane5: {fileID: 0}
     plane5: {fileID: 0}
     m_Dampen:
     m_Dampen:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2661,8 +2755,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     m_Bounce:
     m_Bounce:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2700,8 +2796,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     m_EnergyLossOnCollision:
     m_EnergyLossOnCollision:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2779,8 +2877,10 @@ ParticleSystem:
     range: 1
     range: 1
     intensity: 1
     intensity: 1
     rangeCurve:
     rangeCurve:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2818,8 +2918,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     intensityCurve:
     intensityCurve:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2861,8 +2963,10 @@ ParticleSystem:
     enabled: 0
     enabled: 0
     ratio: 1
     ratio: 1
     lifetime:
     lifetime:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -2909,6 +3013,8 @@ ParticleSystem:
     colorOverLifetime:
     colorOverLifetime:
       serializedVersion: 2
       serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
+      minColor: {r: 1, g: 1, b: 1, a: 1}
+      maxColor: {r: 1, g: 1, b: 1, a: 1}
       maxGradient:
       maxGradient:
         serializedVersion: 2
         serializedVersion: 2
         key0: {r: 1, g: 1, b: 1, a: 1}
         key0: {r: 1, g: 1, b: 1, a: 1}
@@ -2967,11 +3073,11 @@ ParticleSystem:
         m_Mode: 0
         m_Mode: 0
         m_NumColorKeys: 2
         m_NumColorKeys: 2
         m_NumAlphaKeys: 2
         m_NumAlphaKeys: 2
-      minColor: {r: 1, g: 1, b: 1, a: 1}
-      maxColor: {r: 1, g: 1, b: 1, a: 1}
     widthOverTrail:
     widthOverTrail:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 1
       scalar: 1
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3011,6 +3117,8 @@ ParticleSystem:
     colorOverTrail:
     colorOverTrail:
       serializedVersion: 2
       serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
+      minColor: {r: 1, g: 1, b: 1, a: 1}
+      maxColor: {r: 1, g: 1, b: 1, a: 1}
       maxGradient:
       maxGradient:
         serializedVersion: 2
         serializedVersion: 2
         key0: {r: 1, g: 1, b: 1, a: 1}
         key0: {r: 1, g: 1, b: 1, a: 1}
@@ -3069,8 +3177,6 @@ ParticleSystem:
         m_Mode: 0
         m_Mode: 0
         m_NumColorKeys: 2
         m_NumColorKeys: 2
         m_NumAlphaKeys: 2
         m_NumAlphaKeys: 2
-      minColor: {r: 1, g: 1, b: 1, a: 1}
-      maxColor: {r: 1, g: 1, b: 1, a: 1}
   CustomDataModule:
   CustomDataModule:
     enabled: 0
     enabled: 0
     mode0: 0
     mode0: 0
@@ -3078,6 +3184,8 @@ ParticleSystem:
     color0:
     color0:
       serializedVersion: 2
       serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
+      minColor: {r: 1, g: 1, b: 1, a: 1}
+      maxColor: {r: 1, g: 1, b: 1, a: 1}
       maxGradient:
       maxGradient:
         serializedVersion: 2
         serializedVersion: 2
         key0: {r: 1, g: 1, b: 1, a: 1}
         key0: {r: 1, g: 1, b: 1, a: 1}
@@ -3136,11 +3244,11 @@ ParticleSystem:
         m_Mode: 0
         m_Mode: 0
         m_NumColorKeys: 2
         m_NumColorKeys: 2
         m_NumAlphaKeys: 2
         m_NumAlphaKeys: 2
-      minColor: {r: 1, g: 1, b: 1, a: 1}
-      maxColor: {r: 1, g: 1, b: 1, a: 1}
     vector0_0:
     vector0_0:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3178,8 +3286,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     vector0_1:
     vector0_1:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3217,8 +3327,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     vector0_2:
     vector0_2:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3256,8 +3368,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     vector0_3:
     vector0_3:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3299,6 +3413,8 @@ ParticleSystem:
     color1:
     color1:
       serializedVersion: 2
       serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
+      minColor: {r: 1, g: 1, b: 1, a: 1}
+      maxColor: {r: 1, g: 1, b: 1, a: 1}
       maxGradient:
       maxGradient:
         serializedVersion: 2
         serializedVersion: 2
         key0: {r: 1, g: 1, b: 1, a: 1}
         key0: {r: 1, g: 1, b: 1, a: 1}
@@ -3357,11 +3473,11 @@ ParticleSystem:
         m_Mode: 0
         m_Mode: 0
         m_NumColorKeys: 2
         m_NumColorKeys: 2
         m_NumAlphaKeys: 2
         m_NumAlphaKeys: 2
-      minColor: {r: 1, g: 1, b: 1, a: 1}
-      maxColor: {r: 1, g: 1, b: 1, a: 1}
     vector1_0:
     vector1_0:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3399,8 +3515,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     vector1_1:
     vector1_1:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3438,8 +3556,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     vector1_2:
     vector1_2:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -3477,8 +3597,10 @@ ParticleSystem:
         m_PostInfinity: 2
         m_PostInfinity: 2
         m_RotationOrder: 4
         m_RotationOrder: 4
     vector1_3:
     vector1_3:
+      serializedVersion: 2
       minMaxState: 0
       minMaxState: 0
       scalar: 0
       scalar: 0
+      minScalar: 0
       maxCurve:
       maxCurve:
         serializedVersion: 2
         serializedVersion: 2
         m_Curve:
         m_Curve:
@@ -4306,8 +4428,8 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d247ba06193faa74d9335f5481b2b56c, type: 3}
   m_Script: {fileID: 11500000, guid: d247ba06193faa74d9335f5481b2b56c, type: 3}
   m_Name: 
   m_Name: 
   m_EditorClassIdentifier: 
   m_EditorClassIdentifier: 
-  skeletonDataAsset: {fileID: 11400000, guid: 44691b56ed7d1f04da0cbc2a52a91b8d, type: 2}
-  initialSkinName: default
+  skeletonDataAsset: {fileID: 11400000, guid: a467507a4ffb1d542a558739b2fede77, type: 2}
+  initialSkinName: base
   initialFlipX: 0
   initialFlipX: 0
   initialFlipY: 0
   initialFlipY: 0
   separatorSlotNames:
   separatorSlotNames:

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 215 - 187
spine-unity/Assets/Examples/Other Examples/SkeletonUtility Animated Physics.unity


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 272 - 122
spine-unity/Assets/Examples/Other Examples/SkeletonUtility Ragdoll.unity


+ 55 - 3
spine-unity/Assets/Examples/Other Examples/SpineGauge.unity

@@ -119,6 +119,8 @@ GameObject:
   - component: {fileID: 351144569}
   - component: {fileID: 351144569}
   - component: {fileID: 351144568}
   - component: {fileID: 351144568}
   - component: {fileID: 351144567}
   - component: {fileID: 351144567}
+  - component: {fileID: 351144571}
+  - component: {fileID: 351144572}
   m_Layer: 0
   m_Layer: 0
   m_Name: Spine GameObject (spineboy)
   m_Name: Spine GameObject (spineboy)
   m_TagString: Untagged
   m_TagString: Untagged
@@ -137,8 +139,8 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d247ba06193faa74d9335f5481b2b56c, type: 3}
   m_Script: {fileID: 11500000, guid: d247ba06193faa74d9335f5481b2b56c, type: 3}
   m_Name: 
   m_Name: 
   m_EditorClassIdentifier: 
   m_EditorClassIdentifier: 
-  skeletonDataAsset: {fileID: 11400000, guid: 44691b56ed7d1f04da0cbc2a52a91b8d, type: 2}
-  initialSkinName: default
+  skeletonDataAsset: {fileID: 11400000, guid: a467507a4ffb1d542a558739b2fede77, type: 2}
+  initialSkinName: base
   initialFlipX: 0
   initialFlipX: 0
   initialFlipY: 0
   initialFlipY: 0
   separatorSlotNames: []
   separatorSlotNames: []
@@ -169,7 +171,7 @@ MeshRenderer:
   m_LightProbeUsage: 1
   m_LightProbeUsage: 1
   m_ReflectionProbeUsage: 1
   m_ReflectionProbeUsage: 1
   m_Materials:
   m_Materials:
-  - {fileID: 2100000, guid: 1455e88fdb81ccc45bdeaedd657bad4d, type: 2}
+  - {fileID: 2100000, guid: 128e02fa6a4f5964fa898757a425b354, type: 2}
   m_StaticBatchInfo:
   m_StaticBatchInfo:
     firstSubMesh: 0
     firstSubMesh: 0
     subMeshCount: 0
     subMeshCount: 0
@@ -209,6 +211,40 @@ Transform:
   m_Father: {fileID: 0}
   m_Father: {fileID: 0}
   m_RootOrder: 2
   m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &351144571
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 351144566}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 26947ae098a8447408d80c0c86e35b48, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  skeletonRenderer: {fileID: 351144567}
+  customSlotMaterials: []
+  customMaterialOverrides:
+  - overrideDisabled: 0
+    originalMaterial: {fileID: 2100000, guid: 1455e88fdb81ccc45bdeaedd657bad4d, type: 2}
+    replacementMaterial: {fileID: 2100000, guid: 128e02fa6a4f5964fa898757a425b354,
+      type: 2}
+--- !u!114 &351144572
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 351144566}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 395f769061839bf488f157c37d23835d, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  flashCount: 3
+  flashColor: {r: 1, g: 1, b: 1, a: 1}
+  interval: 0.016666668
+  fillPhaseProperty: _FillPhase
+  fillColorProperty: _FillColor
 --- !u!1 &795271513
 --- !u!1 &795271513
 GameObject:
 GameObject:
   m_ObjectHideFlags: 0
   m_ObjectHideFlags: 0
@@ -364,6 +400,22 @@ MonoBehaviour:
   spineboy: {fileID: 351144567}
   spineboy: {fileID: 351144567}
   gauge: {fileID: 795271514}
   gauge: {fileID: 795271514}
   healthText: {fileID: 1847717249}
   healthText: {fileID: 1847717249}
+  onAttack:
+    m_PersistentCalls:
+      m_Calls:
+      - m_Target: {fileID: 351144572}
+        m_MethodName: Flash
+        m_Mode: 1
+        m_Arguments:
+          m_ObjectArgument: {fileID: 0}
+          m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+          m_IntArgument: 0
+          m_FloatArgument: 0
+          m_StringArgument: 
+          m_BoolArgument: 0
+        m_CallState: 2
+    m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral,
+      PublicKeyToken=null
 --- !u!1 &1053578423
 --- !u!1 &1053578423
 GameObject:
 GameObject:
   m_ObjectHideFlags: 0
   m_ObjectHideFlags: 0

+ 236 - 0
spine-unity/Assets/Examples/Other Examples/Sprite Shaders.unity

@@ -205,6 +205,86 @@ Transform:
   m_Father: {fileID: 0}
   m_Father: {fileID: 0}
   m_RootOrder: 4
   m_RootOrder: 4
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &394849622
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 394849623}
+  - component: {fileID: 394849625}
+  - component: {fileID: 394849624}
+  m_Layer: 5
+  m_Name: Text
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &394849623
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 394849622}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 2107709637}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: -0.000024796, y: -294}
+  m_SizeDelta: {x: 412, y: 120.85}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &394849624
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 394849622}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 14
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 10
+    m_MaxSize: 40
+    m_Alignment: 0
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: 'Use of the lit sprite shaders with normal maps requires Tangents. Tangents
+    can be generated by SkeletonAnimation by checking "Solve Tangents" under the "Advanced..."
+    foldout in its inspector.''
+
+
+    The bundled sprite shaders are capable of assuming a fixed normal so there is
+    no need for "Add Normals" to be checked under Advanced.'
+--- !u!222 &394849625
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 394849622}
 --- !u!1 &770573969
 --- !u!1 &770573969
 GameObject:
 GameObject:
   m_ObjectHideFlags: 0
   m_ObjectHideFlags: 0
@@ -720,6 +800,68 @@ SpriteRenderer:
   m_Size: {x: 1, y: 1}
   m_Size: {x: 1, y: 1}
   m_AdaptiveModeThreshold: 0.5
   m_AdaptiveModeThreshold: 0.5
   m_SpriteTileMode: 0
   m_SpriteTileMode: 0
+--- !u!1 &1537129159
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 1537129162}
+  - component: {fileID: 1537129161}
+  - component: {fileID: 1537129160}
+  m_Layer: 0
+  m_Name: EventSystem
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &1537129160
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1537129159}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalAxis: Horizontal
+  m_VerticalAxis: Vertical
+  m_SubmitButton: Submit
+  m_CancelButton: Cancel
+  m_InputActionsPerSecond: 10
+  m_RepeatDelay: 0.5
+  m_ForceModuleActive: 0
+--- !u!114 &1537129161
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1537129159}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_FirstSelected: {fileID: 0}
+  m_sendNavigationEvents: 1
+  m_DragThreshold: 5
+--- !u!4 &1537129162
+Transform:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1537129159}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 6
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1628453470
 --- !u!1 &1628453470
 GameObject:
 GameObject:
   m_ObjectHideFlags: 0
   m_ObjectHideFlags: 0
@@ -920,3 +1062,97 @@ Transform:
   m_Father: {fileID: 0}
   m_Father: {fileID: 0}
   m_RootOrder: 0
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2107709633
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 2107709637}
+  - component: {fileID: 2107709636}
+  - component: {fileID: 2107709635}
+  - component: {fileID: 2107709634}
+  m_Layer: 5
+  m_Name: Canvas
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &2107709634
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 2107709633}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreReversedGraphics: 1
+  m_BlockingObjects: 0
+  m_BlockingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+--- !u!114 &2107709635
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 2107709633}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_UiScaleMode: 0
+  m_ReferencePixelsPerUnit: 100
+  m_ScaleFactor: 1
+  m_ReferenceResolution: {x: 800, y: 600}
+  m_ScreenMatchMode: 0
+  m_MatchWidthOrHeight: 0
+  m_PhysicalUnit: 3
+  m_FallbackScreenDPI: 96
+  m_DefaultSpriteDPI: 96
+  m_DynamicPixelsPerUnit: 1
+--- !u!223 &2107709636
+Canvas:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 2107709633}
+  m_Enabled: 1
+  serializedVersion: 3
+  m_RenderMode: 0
+  m_Camera: {fileID: 0}
+  m_PlaneDistance: 100
+  m_PixelPerfect: 0
+  m_ReceivesEvents: 1
+  m_OverrideSorting: 0
+  m_OverridePixelPerfect: 0
+  m_SortingBucketNormalizedSize: 0
+  m_AdditionalShaderChannelsFlag: 0
+  m_SortingLayerID: 0
+  m_SortingOrder: 0
+  m_TargetDisplay: 0
+--- !u!224 &2107709637
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 2107709633}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 0, y: 0, z: 0}
+  m_Children:
+  - {fileID: 394849623}
+  m_Father: {fileID: 0}
+  m_RootOrder: 5
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0, y: 0}

+ 3 - 0
spine-unity/Assets/Examples/Scripts/AttackSpineboy.cs

@@ -41,6 +41,8 @@ namespace Spine.Unity.Examples {
 		int currentHealth = 100;
 		int currentHealth = 100;
 		const int maxHealth = 100;
 		const int maxHealth = 100;
 
 
+		public UnityEngine.Events.UnityEvent onAttack;
+
 		void Update () {
 		void Update () {
 			if (Input.GetKeyDown(KeyCode.Space)) {
 			if (Input.GetKeyDown(KeyCode.Space)) {
 				currentHealth -= 10;
 				currentHealth -= 10;
@@ -50,6 +52,7 @@ namespace Spine.Unity.Examples {
 					spineboy.AnimationState.SetAnimation(0, "hit", false);
 					spineboy.AnimationState.SetAnimation(0, "hit", false);
 					spineboy.AnimationState.AddAnimation(0, "idle", true, 0);
 					spineboy.AnimationState.AddAnimation(0, "idle", true, 0);
 					gauge.fillPercent = (float)currentHealth/(float)maxHealth;
 					gauge.fillPercent = (float)currentHealth/(float)maxHealth;
+					onAttack.Invoke();
 				} else {
 				} else {
 					if (currentHealth >= 0) {
 					if (currentHealth >= 0) {
 						gauge.fillPercent = 0;
 						gauge.fillPercent = 0;

+ 0 - 0
spine-unity/Assets/Examples/Getting Started/Scripts.meta → spine-unity/Assets/Examples/Scripts/Getting Started Scripts.meta


+ 46 - 64
spine-unity/Assets/Examples/Getting Started/Scripts/BasicPlatformerController.cs → spine-unity/Assets/Examples/Scripts/Getting Started Scripts/BasicPlatformerController.cs

@@ -37,15 +37,15 @@ namespace Spine.Unity.Examples {
 	[RequireComponent(typeof(CharacterController))]
 	[RequireComponent(typeof(CharacterController))]
 	public class BasicPlatformerController : MonoBehaviour {
 	public class BasicPlatformerController : MonoBehaviour {
 
 
-	    [Header("Controls")]
+		[Header("Controls")]
 		public string XAxis = "Horizontal";
 		public string XAxis = "Horizontal";
 		public string YAxis = "Vertical";
 		public string YAxis = "Vertical";
 		public string JumpButton = "Jump";
 		public string JumpButton = "Jump";
 
 
 		[Header("Moving")]
 		[Header("Moving")]
-		public float walkSpeed = 4;
-		public float runSpeed = 10;
-		public float gravity = 65;
+		public float walkSpeed = 1.5f;
+		public float runSpeed = 7f;
+		public float gravityScale = 6.6f;
 
 
 		[Header("Jumping")]
 		[Header("Jumping")]
 		public float jumpSpeed = 25;
 		public float jumpSpeed = 25;
@@ -55,7 +55,6 @@ namespace Spine.Unity.Examples {
 		public float forceCrouchDuration = 0.5f;
 		public float forceCrouchDuration = 0.5f;
 
 
 		[Header("Graphics")]
 		[Header("Graphics")]
-		public Transform graphicsRoot;
 		public SkeletonAnimation skeletonAnimation;
 		public SkeletonAnimation skeletonAnimation;
 
 
 		[Header("Animation")]
 		[Header("Animation")]
@@ -72,32 +71,30 @@ namespace Spine.Unity.Examples {
 		[SpineAnimation(dataField: "skeletonAnimation")]
 		[SpineAnimation(dataField: "skeletonAnimation")]
 		public string crouchName = "Crouch";
 		public string crouchName = "Crouch";
 
 
-		[Header("Audio")]
+		[Header("Effects")]
 		public AudioSource jumpAudioSource;
 		public AudioSource jumpAudioSource;
 		public AudioSource hardfallAudioSource;
 		public AudioSource hardfallAudioSource;
 		public AudioSource footstepAudioSource;
 		public AudioSource footstepAudioSource;
+		public ParticleSystem landParticles;
 		[SpineEvent]
 		[SpineEvent]
 		public string footstepEventName = "Footstep";
 		public string footstepEventName = "Footstep";
 		CharacterController controller;
 		CharacterController controller;
-		Vector2 velocity = Vector2.zero;
-		Vector2 lastVelocity = Vector2.zero;
-		bool lastGrounded = false;
+		Vector3 velocity = default(Vector3);
 		float jumpEndTime = 0;
 		float jumpEndTime = 0;
 		bool jumpInterrupt = false;
 		bool jumpInterrupt = false;
 		float forceCrouchEndTime;
 		float forceCrouchEndTime;
-		Quaternion flippedRotation = Quaternion.Euler(0, 180, 0);
+		Vector2 input;
+		bool wasGrounded = false;
 
 
 		void Awake () {
 		void Awake () {
 			controller = GetComponent<CharacterController>();
 			controller = GetComponent<CharacterController>();
 		}
 		}
 
 
 		void Start () {
 		void Start () {
-			// Register a callback for Spine Events (in this case, Footstep)
 			skeletonAnimation.AnimationState.Event += HandleEvent;
 			skeletonAnimation.AnimationState.Event += HandleEvent;
 		}
 		}
 
 
 		void HandleEvent (Spine.TrackEntry trackEntry, Spine.Event e) {
 		void HandleEvent (Spine.TrackEntry trackEntry, Spine.Event e) {
-			// Play some sound if footstep event fired
 			if (e.Data.Name == footstepEventName) {
 			if (e.Data.Name == footstepEventName) {
 				footstepAudioSource.Stop();
 				footstepAudioSource.Stop();
 				footstepAudioSource.pitch = GetRandomPitch(0.2f);
 				footstepAudioSource.pitch = GetRandomPitch(0.2f);
@@ -105,100 +102,85 @@ namespace Spine.Unity.Examples {
 			}
 			}
 		}
 		}
 
 
+		static float GetRandomPitch (float maxOffset) {
+			return 1f + Random.Range(-maxOffset, maxOffset);
+		}
+
 		void Update () {
 		void Update () {
-			//control inputs
-			float x = Input.GetAxis(XAxis);
-			float y = Input.GetAxis(YAxis);
-			//check for force crouch
-			bool crouching = (controller.isGrounded && y < -0.5f) || (forceCrouchEndTime > Time.time);
+			input.x = Input.GetAxis(XAxis);
+			input.y = Input.GetAxis(YAxis);
+			bool crouching = (controller.isGrounded && input.y < -0.5f) || (forceCrouchEndTime > Time.time);
 			velocity.x = 0;
 			velocity.x = 0;
+			float dt = Time.deltaTime;
 
 
-			//Calculate control velocity
 			if (!crouching) { 
 			if (!crouching) { 
-				if (Input.GetButtonDown(JumpButton) && controller.isGrounded) {
-					//jump
+				if (Input.GetButtonDown(JumpButton) && controller.isGrounded) {					
 					jumpAudioSource.Stop();
 					jumpAudioSource.Stop();
 					jumpAudioSource.Play();
 					jumpAudioSource.Play();
 					velocity.y = jumpSpeed;
 					velocity.y = jumpSpeed;
 					jumpEndTime = Time.time + jumpDuration;
 					jumpEndTime = Time.time + jumpDuration;
-				} else if (Time.time < jumpEndTime && Input.GetButtonUp(JumpButton)) {
-					jumpInterrupt = true;
+				} else {
+					jumpInterrupt |= Time.time < jumpEndTime && Input.GetButtonUp(JumpButton);
 				}
 				}
 
 
-	            
-				if (x != 0) {
-					//walk or run
-					velocity.x = Mathf.Abs(x) > 0.6f ? runSpeed : walkSpeed;
-					velocity.x *= Mathf.Sign(x);
+				if (input.x != 0) {
+					velocity.x = Mathf.Abs(input.x) > 0.6f ? runSpeed : walkSpeed;
+					velocity.x *= Mathf.Sign(input.x);
 				}
 				}
 
 
 				if (jumpInterrupt) {
 				if (jumpInterrupt) {
-					//interrupt jump and smoothly cut Y velocity
 					if (velocity.y > 0) {
 					if (velocity.y > 0) {
-						velocity.y = Mathf.MoveTowards(velocity.y, 0, Time.deltaTime * 100);
+						velocity.y = Mathf.MoveTowards(velocity.y, 0, dt * jumpInterruptFactor);
 					} else { 
 					} else { 
 						jumpInterrupt = false;
 						jumpInterrupt = false;
 					}
 					}
 				}
 				}
 			}
 			}
 
 
-			//apply gravity F = mA (Learn it, love it, live it)
-			velocity.y -= gravity * Time.deltaTime;
+			var gravityDeltaVelocity = Physics.gravity * gravityScale * dt;
 
 
-			//move
-			controller.Move(new Vector3(velocity.x, velocity.y, 0) * Time.deltaTime);
-	        
 			if (controller.isGrounded) {
 			if (controller.isGrounded) {
-				//cancel out Y velocity if on ground
-				velocity.y = -gravity * Time.deltaTime;
 				jumpInterrupt = false;
 				jumpInterrupt = false;
+			} else {
+				if (wasGrounded) {
+					if (velocity.y < 0)
+						velocity.y = 0;
+				} else {
+					velocity += gravityDeltaVelocity;
+				}
 			}
 			}
 
 
-	        
-			Vector2 deltaVelocity = lastVelocity - velocity;
+			wasGrounded = controller.isGrounded;
+
+			controller.Move(velocity * dt);
 
 
-			if (!lastGrounded && controller.isGrounded) {
-				//detect hard fall
-				if ((gravity * Time.deltaTime) - deltaVelocity.y > forceCrouchVelocity) {
+			if (!wasGrounded && controller.isGrounded) {
+				if (-velocity.y > forceCrouchVelocity) {
 					forceCrouchEndTime = Time.time + forceCrouchDuration;
 					forceCrouchEndTime = Time.time + forceCrouchDuration;
 					hardfallAudioSource.Play();
 					hardfallAudioSource.Play();
 				} else {
 				} else {
-					//play footstep audio if light fall because why not
 					footstepAudioSource.Play();
 					footstepAudioSource.Play();
 				}
 				}
-	            
+					
+				landParticles.Emit((int)(velocity.y / -9f) + 2);
 			}
 			}
 
 
-			//graphics updates
 			if (controller.isGrounded) {
 			if (controller.isGrounded) {
-				if (crouching) { //crouch
+				if (crouching) {
 					skeletonAnimation.AnimationName = crouchName;
 					skeletonAnimation.AnimationName = crouchName;
 				} else {
 				} else {
-					if (x == 0) //idle
+					if (input.x == 0)
 						skeletonAnimation.AnimationName = idleName;
 						skeletonAnimation.AnimationName = idleName;
-					else //move
-						skeletonAnimation.AnimationName = Mathf.Abs(x) > 0.6f ? runName : walkName;
+					else
+						skeletonAnimation.AnimationName = Mathf.Abs(input.x) > 0.6f ? runName : walkName;
 				}
 				}
 			} else {
 			} else {
-				if (velocity.y > 0) //jump
-					skeletonAnimation.AnimationName = jumpName;
-				else //fall
-					skeletonAnimation.AnimationName = fallName;
+				skeletonAnimation.AnimationName = velocity.y > 0 ? jumpName : fallName;
 			}
 			}
 
 
-			//flip left or right
-			if (x > 0)
-				graphicsRoot.localRotation = Quaternion.identity;
-			else if (x < 0)
-				graphicsRoot.localRotation = flippedRotation;
-
-			//store previous state
-			lastVelocity = velocity;
-			lastGrounded = controller.isGrounded;
-		}
+			if (input.x != 0)
+				skeletonAnimation.Skeleton.FlipX = input.x < 0;
 			
 			
-		static float GetRandomPitch (float maxOffset) {
-			return 1f + Random.Range(-maxOffset, maxOffset);
 		}
 		}
 	}
 	}
 }
 }

+ 0 - 0
spine-unity/Assets/Examples/Getting Started/Scripts/BasicPlatformerController.cs.meta → spine-unity/Assets/Examples/Scripts/Getting Started Scripts/BasicPlatformerController.cs.meta


+ 0 - 0
spine-unity/Assets/Examples/Getting Started/Scripts/ConstrainedCamera.cs → spine-unity/Assets/Examples/Scripts/Getting Started Scripts/ConstrainedCamera.cs


+ 0 - 0
spine-unity/Assets/Examples/Getting Started/Scripts/ConstrainedCamera.cs.meta → spine-unity/Assets/Examples/Scripts/Getting Started Scripts/ConstrainedCamera.cs.meta


+ 84 - 84
spine-unity/Assets/Examples/Getting Started/Scripts/Raptor.cs → spine-unity/Assets/Examples/Scripts/Getting Started Scripts/Raptor.cs

@@ -1,85 +1,85 @@
-/******************************************************************************
- * Spine Runtimes Software License v2.5
- *
- * Copyright (c) 2013-2016, Esoteric Software
- * All rights reserved.
- *
- * You are granted a perpetual, non-exclusive, non-sublicensable, and
- * non-transferable license to use, install, execute, and perform the Spine
- * Runtimes software and derivative works solely for personal or internal
- * use. Without the written permission of Esoteric Software (see Section 2 of
- * the Spine Software License Agreement), you may not (a) modify, translate,
- * adapt, or develop new applications using the Spine Runtimes or otherwise
- * create derivative works or improvements of the Spine Runtimes or (b) remove,
- * delete, alter, or obscure any trademarks or any copyright, trademark, patent,
- * or other intellectual property or proprietary rights notices on or in the
- * Software, including any copy thereof. Redistributions in binary or source
- * form must include this license and terms.
- *
- * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
- * EVENT SHALL ESOTERIC SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, OR LOSS OF
- * USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-using UnityEngine;
-using System.Collections;
-using Spine.Unity;
-
-namespace Spine.Unity.Examples {
-	public class Raptor : MonoBehaviour {
-
-		#region Inspector
-		[SpineAnimation]
-		public string walk = "walk";
-
-		[SpineAnimation]
-		public string gungrab = "gungrab";
-
-		[SpineAnimation]
-		public string gunkeep = "gunkeep";
-
-		[SpineEvent]
-		public string footstepEvent = "footstep";
-
-		public AudioSource footstepAudioSource;
-		#endregion
-
-		SkeletonAnimation skeletonAnimation;
-
-		void Start () {
-			skeletonAnimation = GetComponent<SkeletonAnimation>();
-			skeletonAnimation.state.Event += HandleEvent;
-			StartCoroutine(GunGrabRoutine());
-		}
-
-		void HandleEvent (Spine.TrackEntry trackEntry, Spine.Event e) {
-			if (e.Data.Name == footstepEvent) {
-				footstepAudioSource.pitch = 0.5f + Random.Range(-0.2f, 0.2f);
-				footstepAudioSource.Play();
-			}
-		}
-
-		IEnumerator GunGrabRoutine () {		
-			// Play the walk animation on track 0.
-			skeletonAnimation.state.SetAnimation(0, walk, true);
-
-			// Repeatedly play the gungrab and gunkeep animation on track 1.
-			while (true) {
-				yield return new WaitForSeconds(Random.Range(0.5f, 3f));
-				skeletonAnimation.state.SetAnimation(1, gungrab, false);
-
-				yield return new WaitForSeconds(Random.Range(0.5f, 3f));
-				skeletonAnimation.state.SetAnimation(1, gunkeep, false);
-			}
-
-		}
-
-	}
+/******************************************************************************
+ * Spine Runtimes Software License v2.5
+ *
+ * Copyright (c) 2013-2016, Esoteric Software
+ * All rights reserved.
+ *
+ * You are granted a perpetual, non-exclusive, non-sublicensable, and
+ * non-transferable license to use, install, execute, and perform the Spine
+ * Runtimes software and derivative works solely for personal or internal
+ * use. Without the written permission of Esoteric Software (see Section 2 of
+ * the Spine Software License Agreement), you may not (a) modify, translate,
+ * adapt, or develop new applications using the Spine Runtimes or otherwise
+ * create derivative works or improvements of the Spine Runtimes or (b) remove,
+ * delete, alter, or obscure any trademarks or any copyright, trademark, patent,
+ * or other intellectual property or proprietary rights notices on or in the
+ * Software, including any copy thereof. Redistributions in binary or source
+ * form must include this license and terms.
+ *
+ * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+ * EVENT SHALL ESOTERIC SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, OR LOSS OF
+ * USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *****************************************************************************/
+
+using UnityEngine;
+using System.Collections;
+using Spine.Unity;
+
+namespace Spine.Unity.Examples {
+	public class Raptor : MonoBehaviour {
+
+		#region Inspector
+		[SpineAnimation]
+		public string walk = "walk";
+
+		[SpineAnimation]
+		public string gungrab = "gungrab";
+
+		[SpineAnimation]
+		public string gunkeep = "gunkeep";
+
+		[SpineEvent]
+		public string footstepEvent = "footstep";
+
+		public AudioSource footstepAudioSource;
+		#endregion
+
+		SkeletonAnimation skeletonAnimation;
+
+		void Start () {
+			skeletonAnimation = GetComponent<SkeletonAnimation>();
+			skeletonAnimation.AnimationState.Event += HandleEvent;
+			StartCoroutine(GunGrabRoutine());
+		}
+
+		void HandleEvent (Spine.TrackEntry trackEntry, Spine.Event e) {
+			if (e.Data.Name == footstepEvent) {
+				footstepAudioSource.pitch = 0.5f + Random.Range(-0.2f, 0.2f);
+				footstepAudioSource.Play();
+			}
+		}
+
+		IEnumerator GunGrabRoutine () {		
+			// Play the walk animation on track 0.
+			skeletonAnimation.AnimationState.SetAnimation(0, walk, true);
+
+			// Repeatedly play the gungrab and gunkeep animation on track 1.
+			while (true) {
+				yield return new WaitForSeconds(Random.Range(0.5f, 3f));
+				skeletonAnimation.AnimationState.SetAnimation(1, gungrab, false);
+
+				yield return new WaitForSeconds(Random.Range(0.5f, 3f));
+				skeletonAnimation.AnimationState.SetAnimation(1, gunkeep, false);
+			}
+
+		}
+
+	}
 }
 }

+ 0 - 0
spine-unity/Assets/Examples/Getting Started/Scripts/Raptor.cs.meta → spine-unity/Assets/Examples/Scripts/Getting Started Scripts/Raptor.cs.meta


+ 108 - 103
spine-unity/Assets/Examples/Getting Started/Scripts/SpineBeginnerTwo.cs → spine-unity/Assets/Examples/Scripts/Getting Started Scripts/SpineBeginnerTwo.cs

@@ -1,103 +1,108 @@
-/******************************************************************************
- * Spine Runtimes Software License v2.5
- *
- * Copyright (c) 2013-2016, Esoteric Software
- * All rights reserved.
- *
- * You are granted a perpetual, non-exclusive, non-sublicensable, and
- * non-transferable license to use, install, execute, and perform the Spine
- * Runtimes software and derivative works solely for personal or internal
- * use. Without the written permission of Esoteric Software (see Section 2 of
- * the Spine Software License Agreement), you may not (a) modify, translate,
- * adapt, or develop new applications using the Spine Runtimes or otherwise
- * create derivative works or improvements of the Spine Runtimes or (b) remove,
- * delete, alter, or obscure any trademarks or any copyright, trademark, patent,
- * or other intellectual property or proprietary rights notices on or in the
- * Software, including any copy thereof. Redistributions in binary or source
- * form must include this license and terms.
- *
- * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
- * EVENT SHALL ESOTERIC SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, OR LOSS OF
- * USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-using UnityEngine;
-using System.Collections;
-using Spine.Unity;
-
-namespace Spine.Unity.Examples {
-	public class SpineBeginnerTwo : MonoBehaviour {
-
-		#region Inspector
-		// [SpineAnimation] attribute allows an Inspector dropdown of Spine animation names coming form SkeletonAnimation.
-		[SpineAnimation]
-		public string runAnimationName;
-
-		[SpineAnimation]
-		public string idleAnimationName;
-
-		[SpineAnimation]
-		public string walkAnimationName;
-
-		[SpineAnimation]
-		public string shootAnimationName;
-		#endregion
-
-		SkeletonAnimation skeletonAnimation;
-
-		// Spine.AnimationState and Spine.Skeleton are not Unity-serialized objects. You will not see them as fields in the inspector.
-		public Spine.AnimationState spineAnimationState;
-		public Spine.Skeleton skeleton;
-
-		void Start () {
-			// Make sure you get these AnimationState and Skeleton references in Start or Later. Getting and using them in Awake is not guaranteed by default execution order.
-			skeletonAnimation = GetComponent<SkeletonAnimation>();
-			spineAnimationState = skeletonAnimation.AnimationState;
-			skeleton = skeletonAnimation.Skeleton;
-
-			StartCoroutine(DoDemoRoutine());
-		}
-
-		/// <summary>This is an infinitely repeating Unity Coroutine. Read the Unity documentation on Coroutines to learn more.</summary>
-		IEnumerator DoDemoRoutine () {
-
-			while (true) {
-				// SetAnimation is the basic way to set an animation.
-				// SetAnimation sets the animation and starts playing it from the beginning.
-				// Common Mistake: If you keep calling it in Update, it will keep showing the first pose of the animation, do don't do that.
-
-				spineAnimationState.SetAnimation(0, walkAnimationName, true);
-				yield return new WaitForSeconds(1.5f);
-
-				// skeletonAnimation.AnimationName = runAnimationName; // this line also works for quick testing/simple uses.
-				spineAnimationState.SetAnimation(0, runAnimationName, true);
-				yield return new WaitForSeconds(1.5f);
-
-				spineAnimationState.SetAnimation(0, idleAnimationName, true);
-				yield return new WaitForSeconds(1f);
-
-				skeleton.FlipX = true;		// skeleton allows you to flip the skeleton.
-				yield return new WaitForSeconds(0.5f);
-				skeleton.FlipX = false;
-				yield return new WaitForSeconds(0.5f);
-
-			}
-		}
-
-		void Track_Complete (TrackEntry trackEntry) { Debug.Log("Complete " + trackEntry.Animation.Name); }
-
-		void Track_End (TrackEntry trackEntry) { Debug.Log("End " + trackEntry.Animation.Name); }
-
-		void HandleStart (TrackEntry trackEntry) { Debug.Log("Start " + trackEntry.Animation.Name); }
-
-
-	}
-
-}
+/******************************************************************************
+ * Spine Runtimes Software License v2.5
+ *
+ * Copyright (c) 2013-2016, Esoteric Software
+ * All rights reserved.
+ *
+ * You are granted a perpetual, non-exclusive, non-sublicensable, and
+ * non-transferable license to use, install, execute, and perform the Spine
+ * Runtimes software and derivative works solely for personal or internal
+ * use. Without the written permission of Esoteric Software (see Section 2 of
+ * the Spine Software License Agreement), you may not (a) modify, translate,
+ * adapt, or develop new applications using the Spine Runtimes or otherwise
+ * create derivative works or improvements of the Spine Runtimes or (b) remove,
+ * delete, alter, or obscure any trademarks or any copyright, trademark, patent,
+ * or other intellectual property or proprietary rights notices on or in the
+ * Software, including any copy thereof. Redistributions in binary or source
+ * form must include this license and terms.
+ *
+ * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+ * EVENT SHALL ESOTERIC SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, OR LOSS OF
+ * USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *****************************************************************************/
+
+using UnityEngine;
+using System.Collections;
+using Spine.Unity;
+
+namespace Spine.Unity.Examples {
+	public class SpineBeginnerTwo : MonoBehaviour {
+
+		#region Inspector
+		// [SpineAnimation] attribute allows an Inspector dropdown of Spine animation names coming form SkeletonAnimation.
+		[SpineAnimation]
+		public string runAnimationName;
+
+		[SpineAnimation]
+		public string idleAnimationName;
+
+		[SpineAnimation]
+		public string walkAnimationName;
+
+		[SpineAnimation]
+		public string shootAnimationName;
+
+		[Header("Transitions")]
+		[SpineAnimation]
+		public string idleTurnAnimationName;
+
+		[SpineAnimation]
+		public string runToIdleAnimationName;
+		#endregion
+
+		SkeletonAnimation skeletonAnimation;
+
+		// Spine.AnimationState and Spine.Skeleton are not Unity-serialized objects. You will not see them as fields in the inspector.
+		public Spine.AnimationState spineAnimationState;
+		public Spine.Skeleton skeleton;
+
+		void Start () {
+			// Make sure you get these AnimationState and Skeleton references in Start or Later.
+			// Getting and using them in Awake is not guaranteed by default execution order.
+			skeletonAnimation = GetComponent<SkeletonAnimation>();
+			spineAnimationState = skeletonAnimation.AnimationState;
+			skeleton = skeletonAnimation.Skeleton;
+
+			StartCoroutine(DoDemoRoutine());
+		}
+
+		/// This is an infinitely repeating Unity Coroutine. Read the Unity documentation on Coroutines to learn more.
+		IEnumerator DoDemoRoutine () {
+			while (true) {
+				// SetAnimation is the basic way to set an animation.
+				// SetAnimation sets the animation and starts playing it from the beginning.
+				// Common Mistake: If you keep calling it in Update, it will keep showing the first pose of the animation, do don't do that.
+
+				spineAnimationState.SetAnimation(0, walkAnimationName, true);
+				yield return new WaitForSeconds(1.5f);
+
+				spineAnimationState.SetAnimation(0, runAnimationName, true);
+				yield return new WaitForSeconds(1.5f);
+
+				// AddAnimation queues up an animation to play after the previous one ends.
+				spineAnimationState.SetAnimation(0, runToIdleAnimationName, false);
+				spineAnimationState.AddAnimation(0, idleAnimationName, true, 0);
+				yield return new WaitForSeconds(1f);
+
+				skeleton.FlipX = true;		// skeleton allows you to flip the skeleton.
+				spineAnimationState.SetAnimation(0, idleTurnAnimationName, false);
+				spineAnimationState.AddAnimation(0, idleAnimationName, true, 0);
+				yield return new WaitForSeconds(0.5f);
+				skeleton.FlipX = false;
+				spineAnimationState.SetAnimation(0, idleTurnAnimationName, false);
+				spineAnimationState.AddAnimation(0, idleAnimationName, true, 0);
+				yield return new WaitForSeconds(0.5f);
+
+			}
+		}
+
+	}
+
+}

+ 0 - 0
spine-unity/Assets/Examples/Getting Started/Scripts/SpineBeginnerTwo.cs.meta → spine-unity/Assets/Examples/Scripts/Getting Started Scripts/SpineBeginnerTwo.cs.meta


+ 53 - 53
spine-unity/Assets/Examples/Getting Started/Scripts/SpineBlinkPlayer.cs → spine-unity/Assets/Examples/Scripts/Getting Started Scripts/SpineBlinkPlayer.cs

@@ -1,53 +1,53 @@
-/******************************************************************************
- * Spine Runtimes Software License v2.5
- *
- * Copyright (c) 2013-2016, Esoteric Software
- * All rights reserved.
- *
- * You are granted a perpetual, non-exclusive, non-sublicensable, and
- * non-transferable license to use, install, execute, and perform the Spine
- * Runtimes software and derivative works solely for personal or internal
- * use. Without the written permission of Esoteric Software (see Section 2 of
- * the Spine Software License Agreement), you may not (a) modify, translate,
- * adapt, or develop new applications using the Spine Runtimes or otherwise
- * create derivative works or improvements of the Spine Runtimes or (b) remove,
- * delete, alter, or obscure any trademarks or any copyright, trademark, patent,
- * or other intellectual property or proprietary rights notices on or in the
- * Software, including any copy thereof. Redistributions in binary or source
- * form must include this license and terms.
- *
- * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
- * EVENT SHALL ESOTERIC SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, OR LOSS OF
- * USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-using UnityEngine;
-using System.Collections;
-using Spine.Unity;
-
-namespace Spine.Unity.Examples {
-	public class SpineBlinkPlayer : MonoBehaviour {
-		const int BlinkTrack = 1;
-
-		[SpineAnimation]
-		public string blinkAnimation;
-		public float minimumDelay = 0.15f;
-		public float maximumDelay = 3f;
-
-		IEnumerator Start () {
-			var skeletonAnimation = GetComponent<SkeletonAnimation>(); if (skeletonAnimation == null) yield break;
-			while (true) {
-				skeletonAnimation.AnimationState.SetAnimation(SpineBlinkPlayer.BlinkTrack, blinkAnimation, false);
-				yield return new WaitForSeconds(Random.Range(minimumDelay, maximumDelay));
-			}
-		}
-
-	}
-}
+/******************************************************************************
+ * Spine Runtimes Software License v2.5
+ *
+ * Copyright (c) 2013-2016, Esoteric Software
+ * All rights reserved.
+ *
+ * You are granted a perpetual, non-exclusive, non-sublicensable, and
+ * non-transferable license to use, install, execute, and perform the Spine
+ * Runtimes software and derivative works solely for personal or internal
+ * use. Without the written permission of Esoteric Software (see Section 2 of
+ * the Spine Software License Agreement), you may not (a) modify, translate,
+ * adapt, or develop new applications using the Spine Runtimes or otherwise
+ * create derivative works or improvements of the Spine Runtimes or (b) remove,
+ * delete, alter, or obscure any trademarks or any copyright, trademark, patent,
+ * or other intellectual property or proprietary rights notices on or in the
+ * Software, including any copy thereof. Redistributions in binary or source
+ * form must include this license and terms.
+ *
+ * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+ * EVENT SHALL ESOTERIC SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, OR LOSS OF
+ * USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *****************************************************************************/
+
+using UnityEngine;
+using System.Collections;
+using Spine.Unity;
+
+namespace Spine.Unity.Examples {
+	public class SpineBlinkPlayer : MonoBehaviour {
+		const int BlinkTrack = 1;
+
+		[SpineAnimation]
+		public string blinkAnimation;
+		public float minimumDelay = 0.15f;
+		public float maximumDelay = 3f;
+
+		IEnumerator Start () {
+			var skeletonAnimation = GetComponent<SkeletonAnimation>(); if (skeletonAnimation == null) yield break;
+			while (true) {
+				skeletonAnimation.AnimationState.SetAnimation(SpineBlinkPlayer.BlinkTrack, blinkAnimation, false);
+				yield return new WaitForSeconds(Random.Range(minimumDelay, maximumDelay));
+			}
+		}
+
+	}
+}

+ 0 - 0
spine-unity/Assets/Examples/Getting Started/Scripts/SpineBlinkPlayer.cs.meta → spine-unity/Assets/Examples/Scripts/Getting Started Scripts/SpineBlinkPlayer.cs.meta


+ 63 - 63
spine-unity/Assets/Examples/Getting Started/Scripts/SpineboyBeginnerInput.cs → spine-unity/Assets/Examples/Scripts/Getting Started Scripts/SpineboyBeginnerInput.cs

@@ -1,63 +1,63 @@
-/******************************************************************************
- * Spine Runtimes Software License v2.5
- *
- * Copyright (c) 2013-2016, Esoteric Software
- * All rights reserved.
- *
- * You are granted a perpetual, non-exclusive, non-sublicensable, and
- * non-transferable license to use, install, execute, and perform the Spine
- * Runtimes software and derivative works solely for personal or internal
- * use. Without the written permission of Esoteric Software (see Section 2 of
- * the Spine Software License Agreement), you may not (a) modify, translate,
- * adapt, or develop new applications using the Spine Runtimes or otherwise
- * create derivative works or improvements of the Spine Runtimes or (b) remove,
- * delete, alter, or obscure any trademarks or any copyright, trademark, patent,
- * or other intellectual property or proprietary rights notices on or in the
- * Software, including any copy thereof. Redistributions in binary or source
- * form must include this license and terms.
- *
- * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
- * EVENT SHALL ESOTERIC SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, OR LOSS OF
- * USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-using UnityEngine;
-using System.Collections;
-
-namespace Spine.Unity.Examples {
-	public class SpineboyBeginnerInput : MonoBehaviour {
-		#region Inspector
-		public string horizontalAxis = "Horizontal";
-		public string attackButton = "Fire1";
-		public string jumpButton = "Jump";
-
-		public SpineboyBeginnerModel model;
-
-		void OnValidate () {
-			if (model == null)
-				model = GetComponent<SpineboyBeginnerModel>();
-		}
-		#endregion
-
-		void Update () {
-			if (model == null) return;
-
-			float currentHorizontal = Input.GetAxisRaw(horizontalAxis);
-			model.TryMove(currentHorizontal);
-
-			if (Input.GetButton(attackButton))
-				model.TryShoot();
-
-			if (Input.GetButtonDown(jumpButton))
-				model.TryJump();
-		}
-	}
-
-}
+/******************************************************************************
+ * Spine Runtimes Software License v2.5
+ *
+ * Copyright (c) 2013-2016, Esoteric Software
+ * All rights reserved.
+ *
+ * You are granted a perpetual, non-exclusive, non-sublicensable, and
+ * non-transferable license to use, install, execute, and perform the Spine
+ * Runtimes software and derivative works solely for personal or internal
+ * use. Without the written permission of Esoteric Software (see Section 2 of
+ * the Spine Software License Agreement), you may not (a) modify, translate,
+ * adapt, or develop new applications using the Spine Runtimes or otherwise
+ * create derivative works or improvements of the Spine Runtimes or (b) remove,
+ * delete, alter, or obscure any trademarks or any copyright, trademark, patent,
+ * or other intellectual property or proprietary rights notices on or in the
+ * Software, including any copy thereof. Redistributions in binary or source
+ * form must include this license and terms.
+ *
+ * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+ * EVENT SHALL ESOTERIC SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, OR LOSS OF
+ * USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *****************************************************************************/
+
+using UnityEngine;
+using System.Collections;
+
+namespace Spine.Unity.Examples {
+	public class SpineboyBeginnerInput : MonoBehaviour {
+		#region Inspector
+		public string horizontalAxis = "Horizontal";
+		public string attackButton = "Fire1";
+		public string jumpButton = "Jump";
+
+		public SpineboyBeginnerModel model;
+
+		void OnValidate () {
+			if (model == null)
+				model = GetComponent<SpineboyBeginnerModel>();
+		}
+		#endregion
+
+		void Update () {
+			if (model == null) return;
+
+			float currentHorizontal = Input.GetAxisRaw(horizontalAxis);
+			model.TryMove(currentHorizontal);
+
+			if (Input.GetButton(attackButton))
+				model.TryShoot();
+
+			if (Input.GetButtonDown(jumpButton))
+				model.TryJump();
+		}
+	}
+
+}

+ 0 - 0
spine-unity/Assets/Examples/Getting Started/Scripts/SpineboyBeginnerInput.cs.meta → spine-unity/Assets/Examples/Scripts/Getting Started Scripts/SpineboyBeginnerInput.cs.meta


+ 115 - 115
spine-unity/Assets/Examples/Getting Started/Scripts/SpineboyBeginnerModel.cs → spine-unity/Assets/Examples/Scripts/Getting Started Scripts/SpineboyBeginnerModel.cs

@@ -1,115 +1,115 @@
-/******************************************************************************
- * Spine Runtimes Software License v2.5
- *
- * Copyright (c) 2013-2016, Esoteric Software
- * All rights reserved.
- *
- * You are granted a perpetual, non-exclusive, non-sublicensable, and
- * non-transferable license to use, install, execute, and perform the Spine
- * Runtimes software and derivative works solely for personal or internal
- * use. Without the written permission of Esoteric Software (see Section 2 of
- * the Spine Software License Agreement), you may not (a) modify, translate,
- * adapt, or develop new applications using the Spine Runtimes or otherwise
- * create derivative works or improvements of the Spine Runtimes or (b) remove,
- * delete, alter, or obscure any trademarks or any copyright, trademark, patent,
- * or other intellectual property or proprietary rights notices on or in the
- * Software, including any copy thereof. Redistributions in binary or source
- * form must include this license and terms.
- *
- * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
- * EVENT SHALL ESOTERIC SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, OR LOSS OF
- * USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-using UnityEngine;
-using System.Collections;
-
-namespace Spine.Unity.Examples {
-	[SelectionBase]
-	public class SpineboyBeginnerModel : MonoBehaviour {
-
-		#region Inspector
-		[Header("Current State")]
-		public SpineBeginnerBodyState state;
-		public bool facingLeft;
-		[Range(-1f, 1f)]
-		public float currentSpeed;
-
-		[Header("Balance")]
-		public float shootInterval = 0.12f;
-		#endregion
-
-		float lastShootTime;
-		public event System.Action ShootEvent;	// Lets other scripts know when Spineboy is shooting. Check C# Documentation to learn more about events and delegates.
-
-		#region API
-		public void TryJump () {
-			StartCoroutine(JumpRoutine());
-		}
-
-		public void TryShoot () {
-			float currentTime = Time.time;
-
-			if (currentTime - lastShootTime > shootInterval) {
-				lastShootTime = currentTime;
-				if (ShootEvent != null) ShootEvent();	// Fire the "ShootEvent" event.
-			}
-		}
-
-		public void TryMove (float speed) {
-			currentSpeed = speed; // show the "speed" in the Inspector.
-
-			if (speed != 0) {
-				bool speedIsNegative = (speed < 0f);
-				facingLeft = speedIsNegative; // Change facing direction whenever speed is not 0.
-			}
-
-			if (state != SpineBeginnerBodyState.Jumping) {
-				state = (speed == 0) ? SpineBeginnerBodyState.Idle : SpineBeginnerBodyState.Running;
-			}
-
-		}
-		#endregion
-
-		IEnumerator JumpRoutine () {
-			if (state == SpineBeginnerBodyState.Jumping) yield break;	// Don't jump when already jumping.
-
-			state = SpineBeginnerBodyState.Jumping;
-
-			// Fake jumping.
-			{
-				var pos = transform.localPosition;
-				const float jumpTime = 1.2f;
-				const float half = jumpTime * 0.5f;
-				const float jumpPower = 20f;
-				for (float t = 0; t < half; t += Time.deltaTime) {
-					float d = jumpPower * (half - t);
-					transform.Translate((d * Time.deltaTime) * Vector3.up);
-					yield return null;
-				}
-				for (float t = 0; t < half; t += Time.deltaTime) {
-					float d = jumpPower * t;
-					transform.Translate((d * Time.deltaTime) * Vector3.down);
-					yield return null;
-				}
-				transform.localPosition = pos;
-			}
-
-			state = SpineBeginnerBodyState.Idle;
-		}
-
-	}
-
-	public enum SpineBeginnerBodyState {
-		Idle,
-		Running,
-		Jumping
-	}
-}
+/******************************************************************************
+ * Spine Runtimes Software License v2.5
+ *
+ * Copyright (c) 2013-2016, Esoteric Software
+ * All rights reserved.
+ *
+ * You are granted a perpetual, non-exclusive, non-sublicensable, and
+ * non-transferable license to use, install, execute, and perform the Spine
+ * Runtimes software and derivative works solely for personal or internal
+ * use. Without the written permission of Esoteric Software (see Section 2 of
+ * the Spine Software License Agreement), you may not (a) modify, translate,
+ * adapt, or develop new applications using the Spine Runtimes or otherwise
+ * create derivative works or improvements of the Spine Runtimes or (b) remove,
+ * delete, alter, or obscure any trademarks or any copyright, trademark, patent,
+ * or other intellectual property or proprietary rights notices on or in the
+ * Software, including any copy thereof. Redistributions in binary or source
+ * form must include this license and terms.
+ *
+ * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+ * EVENT SHALL ESOTERIC SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, OR LOSS OF
+ * USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *****************************************************************************/
+
+using UnityEngine;
+using System.Collections;
+
+namespace Spine.Unity.Examples {
+	[SelectionBase]
+	public class SpineboyBeginnerModel : MonoBehaviour {
+
+		#region Inspector
+		[Header("Current State")]
+		public SpineBeginnerBodyState state;
+		public bool facingLeft;
+		[Range(-1f, 1f)]
+		public float currentSpeed;
+
+		[Header("Balance")]
+		public float shootInterval = 0.12f;
+		#endregion
+
+		float lastShootTime;
+		public event System.Action ShootEvent;	// Lets other scripts know when Spineboy is shooting. Check C# Documentation to learn more about events and delegates.
+
+		#region API
+		public void TryJump () {
+			StartCoroutine(JumpRoutine());
+		}
+
+		public void TryShoot () {
+			float currentTime = Time.time;
+
+			if (currentTime - lastShootTime > shootInterval) {
+				lastShootTime = currentTime;
+				if (ShootEvent != null) ShootEvent();	// Fire the "ShootEvent" event.
+			}
+		}
+
+		public void TryMove (float speed) {
+			currentSpeed = speed; // show the "speed" in the Inspector.
+
+			if (speed != 0) {
+				bool speedIsNegative = (speed < 0f);
+				facingLeft = speedIsNegative; // Change facing direction whenever speed is not 0.
+			}
+
+			if (state != SpineBeginnerBodyState.Jumping) {
+				state = (speed == 0) ? SpineBeginnerBodyState.Idle : SpineBeginnerBodyState.Running;
+			}
+
+		}
+		#endregion
+
+		IEnumerator JumpRoutine () {
+			if (state == SpineBeginnerBodyState.Jumping) yield break;	// Don't jump when already jumping.
+
+			state = SpineBeginnerBodyState.Jumping;
+
+			// Fake jumping.
+			{
+				var pos = transform.localPosition;
+				const float jumpTime = 1.2f;
+				const float half = jumpTime * 0.5f;
+				const float jumpPower = 20f;
+				for (float t = 0; t < half; t += Time.deltaTime) {
+					float d = jumpPower * (half - t);
+					transform.Translate((d * Time.deltaTime) * Vector3.up);
+					yield return null;
+				}
+				for (float t = 0; t < half; t += Time.deltaTime) {
+					float d = jumpPower * t;
+					transform.Translate((d * Time.deltaTime) * Vector3.down);
+					yield return null;
+				}
+				transform.localPosition = pos;
+			}
+
+			state = SpineBeginnerBodyState.Idle;
+		}
+
+	}
+
+	public enum SpineBeginnerBodyState {
+		Idle,
+		Running,
+		Jumping
+	}
+}

+ 0 - 0
spine-unity/Assets/Examples/Getting Started/Scripts/SpineboyBeginnerModel.cs.meta → spine-unity/Assets/Examples/Scripts/Getting Started Scripts/SpineboyBeginnerModel.cs.meta


+ 149 - 149
spine-unity/Assets/Examples/Getting Started/Scripts/SpineboyBeginnerView.cs → spine-unity/Assets/Examples/Scripts/Getting Started Scripts/SpineboyBeginnerView.cs

@@ -1,149 +1,149 @@
-/******************************************************************************
- * Spine Runtimes Software License v2.5
- *
- * Copyright (c) 2013-2016, Esoteric Software
- * All rights reserved.
- *
- * You are granted a perpetual, non-exclusive, non-sublicensable, and
- * non-transferable license to use, install, execute, and perform the Spine
- * Runtimes software and derivative works solely for personal or internal
- * use. Without the written permission of Esoteric Software (see Section 2 of
- * the Spine Software License Agreement), you may not (a) modify, translate,
- * adapt, or develop new applications using the Spine Runtimes or otherwise
- * create derivative works or improvements of the Spine Runtimes or (b) remove,
- * delete, alter, or obscure any trademarks or any copyright, trademark, patent,
- * or other intellectual property or proprietary rights notices on or in the
- * Software, including any copy thereof. Redistributions in binary or source
- * form must include this license and terms.
- *
- * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
- * EVENT SHALL ESOTERIC SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, OR LOSS OF
- * USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-using UnityEngine;
-using System.Collections;
-using Spine.Unity;
-
-namespace Spine.Unity.Examples {
-	public class SpineboyBeginnerView : MonoBehaviour {
-
-		#region Inspector
-		[Header("Components")]
-		public SpineboyBeginnerModel model;
-		public SkeletonAnimation skeletonAnimation;
-
-		[SpineAnimation] public string run, idle, shoot, jump;
-		[SpineEvent] public string footstepEventName;
-
-		[Header("Audio")]
-		public float footstepPitchOffset = 0.2f;
-		public float gunsoundPitchOffset = 0.13f;
-		public AudioSource footstepSource, gunSource, jumpSource;
-
-		[Header("Effects")]
-		public ParticleSystem gunParticles;
-		#endregion
-
-		SpineBeginnerBodyState previousViewState;
-
-		void Start () {
-			if (skeletonAnimation == null) return;
-			model.ShootEvent += PlayShoot;
-			skeletonAnimation.AnimationState.Event += HandleEvent;
-		}
-
-		void HandleEvent (Spine.TrackEntry trackEntry, Spine.Event e) {
-			if (e.Data.Name == footstepEventName)
-				PlayFootstepSound();
-		}
-
-		void Update () {
-			if (skeletonAnimation == null) return;
-			if (model == null) return;
-
-			if (skeletonAnimation.skeleton.FlipX != model.facingLeft) {	// Detect changes in model.facingLeft
-				Turn(model.facingLeft);
-			}
-
-			// Detect changes in model.state
-			var currentModelState = model.state;
-
-			if (previousViewState != currentModelState) {
-				PlayNewStableAnimation();
-			}
-
-			previousViewState = currentModelState;
-		}
-
-		void PlayNewStableAnimation () {
-			var newModelState = model.state;
-			string nextAnimation;
-
-			// Add conditionals to not interrupt transient animations.
-
-			if (previousViewState == SpineBeginnerBodyState.Jumping && newModelState != SpineBeginnerBodyState.Jumping) {
-				PlayFootstepSound();
-			}
-
-			if (newModelState == SpineBeginnerBodyState.Jumping) {
-				jumpSource.Play();
-				nextAnimation = jump;
-			} else {
-				if (newModelState == SpineBeginnerBodyState.Running) {
-					nextAnimation = run;
-				} else {
-					nextAnimation = idle;
-				}
-			}
-
-			skeletonAnimation.AnimationState.SetAnimation(0, nextAnimation, true);
-		}
-
-		void PlayFootstepSound () {
-			footstepSource.Play();
-			footstepSource.pitch = GetRandomPitch(footstepPitchOffset);
-		}
-
-		[ContextMenu("Check Tracks")]
-		void CheckTracks () {
-			var state = skeletonAnimation.AnimationState;
-			Debug.Log(state.GetCurrent(0));
-			Debug.Log(state.GetCurrent(1));
-		}
-
-		#region Transient Actions
-		public void PlayShoot () {
-			// Play the shoot animation on track 1.
-			var track = skeletonAnimation.AnimationState.SetAnimation(1, shoot, false);
-			track.AttachmentThreshold = 1f;
-			track.MixDuration = 0f;
-			var empty = skeletonAnimation.state.AddEmptyAnimation(1, 0.5f, 0.1f);
-			empty.AttachmentThreshold = 1f;
-			gunSource.pitch = GetRandomPitch(gunsoundPitchOffset);
-			gunSource.Play();
-			//gunParticles.randomSeed = (uint)Random.Range(0, 100);
-			gunParticles.Play();
-		}
-
-		public void Turn (bool facingLeft) {
-			skeletonAnimation.Skeleton.FlipX = facingLeft;
-			// Maybe play a transient turning animation too, then call ChangeStableAnimation.
-		}
-		#endregion
-
-		#region Utility
-		public float GetRandomPitch (float maxPitchOffset) {
-			return 1f + Random.Range(-maxPitchOffset, maxPitchOffset);
-		}
-		#endregion
-	}
-
-}
+/******************************************************************************
+ * Spine Runtimes Software License v2.5
+ *
+ * Copyright (c) 2013-2016, Esoteric Software
+ * All rights reserved.
+ *
+ * You are granted a perpetual, non-exclusive, non-sublicensable, and
+ * non-transferable license to use, install, execute, and perform the Spine
+ * Runtimes software and derivative works solely for personal or internal
+ * use. Without the written permission of Esoteric Software (see Section 2 of
+ * the Spine Software License Agreement), you may not (a) modify, translate,
+ * adapt, or develop new applications using the Spine Runtimes or otherwise
+ * create derivative works or improvements of the Spine Runtimes or (b) remove,
+ * delete, alter, or obscure any trademarks or any copyright, trademark, patent,
+ * or other intellectual property or proprietary rights notices on or in the
+ * Software, including any copy thereof. Redistributions in binary or source
+ * form must include this license and terms.
+ *
+ * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+ * EVENT SHALL ESOTERIC SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, OR LOSS OF
+ * USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *****************************************************************************/
+
+using UnityEngine;
+using System.Collections;
+using Spine.Unity;
+
+namespace Spine.Unity.Examples {
+	public class SpineboyBeginnerView : MonoBehaviour {
+
+		#region Inspector
+		[Header("Components")]
+		public SpineboyBeginnerModel model;
+		public SkeletonAnimation skeletonAnimation;
+
+		[SpineAnimation] public string run, idle, shoot, jump;
+		[SpineEvent] public string footstepEventName;
+
+		[Header("Audio")]
+		public float footstepPitchOffset = 0.2f;
+		public float gunsoundPitchOffset = 0.13f;
+		public AudioSource footstepSource, gunSource, jumpSource;
+
+		[Header("Effects")]
+		public ParticleSystem gunParticles;
+		#endregion
+
+		SpineBeginnerBodyState previousViewState;
+
+		void Start () {
+			if (skeletonAnimation == null) return;
+			model.ShootEvent += PlayShoot;
+			skeletonAnimation.AnimationState.Event += HandleEvent;
+		}
+
+		void HandleEvent (Spine.TrackEntry trackEntry, Spine.Event e) {
+			if (e.Data.Name == footstepEventName)
+				PlayFootstepSound();
+		}
+
+		void Update () {
+			if (skeletonAnimation == null) return;
+			if (model == null) return;
+
+			if (skeletonAnimation.skeleton.FlipX != model.facingLeft) {	// Detect changes in model.facingLeft
+				Turn(model.facingLeft);
+			}
+
+			// Detect changes in model.state
+			var currentModelState = model.state;
+
+			if (previousViewState != currentModelState) {
+				PlayNewStableAnimation();
+			}
+
+			previousViewState = currentModelState;
+		}
+
+		void PlayNewStableAnimation () {
+			var newModelState = model.state;
+			string nextAnimation;
+
+			// Add conditionals to not interrupt transient animations.
+
+			if (previousViewState == SpineBeginnerBodyState.Jumping && newModelState != SpineBeginnerBodyState.Jumping) {
+				PlayFootstepSound();
+			}
+
+			if (newModelState == SpineBeginnerBodyState.Jumping) {
+				jumpSource.Play();
+				nextAnimation = jump;
+			} else {
+				if (newModelState == SpineBeginnerBodyState.Running) {
+					nextAnimation = run;
+				} else {
+					nextAnimation = idle;
+				}
+			}
+
+			skeletonAnimation.AnimationState.SetAnimation(0, nextAnimation, true);
+		}
+
+		void PlayFootstepSound () {
+			footstepSource.Play();
+			footstepSource.pitch = GetRandomPitch(footstepPitchOffset);
+		}
+
+		[ContextMenu("Check Tracks")]
+		void CheckTracks () {
+			var state = skeletonAnimation.AnimationState;
+			Debug.Log(state.GetCurrent(0));
+			Debug.Log(state.GetCurrent(1));
+		}
+
+		#region Transient Actions
+		public void PlayShoot () {
+			// Play the shoot animation on track 1.
+			var track = skeletonAnimation.AnimationState.SetAnimation(1, shoot, false);
+			track.AttachmentThreshold = 1f;
+			track.MixDuration = 0f;
+			var empty = skeletonAnimation.state.AddEmptyAnimation(1, 0.5f, 0.1f);
+			empty.AttachmentThreshold = 1f;
+			gunSource.pitch = GetRandomPitch(gunsoundPitchOffset);
+			gunSource.Play();
+			//gunParticles.randomSeed = (uint)Random.Range(0, 100);
+			gunParticles.Play();
+		}
+
+		public void Turn (bool facingLeft) {
+			skeletonAnimation.Skeleton.FlipX = facingLeft;
+			// Maybe play a transient turning animation too, then call ChangeStableAnimation.
+		}
+		#endregion
+
+		#region Utility
+		public float GetRandomPitch (float maxPitchOffset) {
+			return 1f + Random.Range(-maxPitchOffset, maxPitchOffset);
+		}
+		#endregion
+	}
+
+}

+ 0 - 0
spine-unity/Assets/Examples/Getting Started/Scripts/SpineboyBeginnerView.cs.meta → spine-unity/Assets/Examples/Scripts/Getting Started Scripts/SpineboyBeginnerView.cs.meta


+ 48 - 0
spine-unity/Assets/Examples/Scripts/HurtFlashEffect.cs

@@ -0,0 +1,48 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class HurtFlashEffect : MonoBehaviour {
+
+	const int DefaultFlashCount = 3;
+
+	public int flashCount = DefaultFlashCount;
+	public Color flashColor = Color.white;
+	[Range(1f/120f, 1f/15f)]
+	public float interval = 1f/60f;
+	public string fillPhaseProperty = "_FillPhase";
+	public string fillColorProperty = "_FillColor";
+
+	MaterialPropertyBlock mpb;
+	MeshRenderer meshRenderer;
+
+	public void Flash () {
+		if (mpb == null) mpb = new MaterialPropertyBlock();
+		if (meshRenderer == null) meshRenderer = GetComponent<MeshRenderer>();
+		meshRenderer.GetPropertyBlock(mpb);
+		
+		StartCoroutine(FlashRoutine());
+	}
+
+	IEnumerator FlashRoutine () {
+		if (flashCount < 0) flashCount = DefaultFlashCount;
+		int fillPhase = Shader.PropertyToID(fillPhaseProperty);
+		int fillColor = Shader.PropertyToID(fillColorProperty);
+
+		var wait = new WaitForSeconds(interval);
+
+		for (int i = 0; i < flashCount; i++) {
+			mpb.SetColor(fillColor, flashColor);
+			mpb.SetFloat(fillPhase, 1f);
+			meshRenderer.SetPropertyBlock(mpb);
+			yield return wait;
+
+			mpb.SetFloat(fillPhase, 0f);
+			meshRenderer.SetPropertyBlock(mpb);
+			yield return wait;
+		}
+
+		yield return null;
+	}
+
+}

+ 12 - 0
spine-unity/Assets/Examples/Scripts/HurtFlashEffect.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 395f769061839bf488f157c37d23835d
+timeCreated: 1497416645
+licenseType: Free
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 145 - 145
spine-unity/Assets/Examples/Spine/Dragon/dragon.atlas.txt

@@ -1,292 +1,292 @@
 
 
 dragon.png
 dragon.png
-size: 1017,1022
+size: 1024,1024
 format: RGBA8888
 format: RGBA8888
 filter: Linear,Linear
 filter: Linear,Linear
 repeat: none
 repeat: none
-L_rear_thigh
+chin
+  rotate: true
+  xy: 856, 140
+  size: 214, 146
+  orig: 214, 146
+  offset: 0, 0
+  index: -1
+front-toe-a
+  rotate: true
+  xy: 584, 74
+  size: 29, 50
+  orig: 29, 50
+  offset: 0, 0
+  index: -1
+head
+  rotate: false
+  xy: 204, 758
+  size: 296, 260
+  orig: 296, 260
+  offset: 0, 0
+  index: -1
+left-front-leg
   rotate: false
   rotate: false
-  xy: 895, 20
-  size: 91, 148
+  xy: 636, 357
+  size: 84, 57
+  orig: 84, 57
+  offset: 0, 0
+  index: -1
+left-rear-thigh
+  rotate: true
+  xy: 207, 14
+  size: 91, 149
   orig: 91, 149
   orig: 91, 149
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-L_wing01
+left-wing01
   rotate: false
   rotate: false
-  xy: 814, 672
+  xy: 443, 105
   size: 191, 256
   size: 191, 256
   orig: 191, 256
   orig: 191, 256
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-L_wing02
-  rotate: false
-  xy: 714, 189
+left-wing02
+  rotate: true
+  xy: 502, 618
   size: 179, 269
   size: 179, 269
   orig: 179, 269
   orig: 179, 269
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-L_wing03
+left-wing04
   rotate: false
   rotate: false
-  xy: 785, 463
-  size: 186, 207
-  orig: 186, 207
+  xy: 636, 4
+  size: 188, 135
+  orig: 188, 135
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-L_wing05
-  rotate: true
-  xy: 2, 9
+left-wing05
+  rotate: false
+  xy: 636, 141
   size: 218, 213
   size: 218, 213
   orig: 218, 213
   orig: 218, 213
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-L_wing06
+left-wing06
   rotate: false
   rotate: false
-  xy: 2, 229
+  xy: 2, 319
   size: 192, 331
   size: 192, 331
   orig: 192, 331
   orig: 192, 331
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-R_wing01
+left-wing07
+  rotate: true
+  xy: 750, 356
+  size: 159, 255
+  orig: 159, 255
+  offset: 0, 0
+  index: -1
+right-rear-thigh
+  rotate: true
+  xy: 433, 12
+  size: 91, 149
+  orig: 91, 149
+  offset: 0, 0
+  index: -1
+right-wing01
   rotate: true
   rotate: true
-  xy: 502, 709
+  xy: 502, 799
   size: 219, 310
   size: 219, 310
   orig: 219, 310
   orig: 219, 310
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-R_wing02
-  rotate: true
-  xy: 204, 463
+right-wing02
+  rotate: false
+  xy: 2, 12
   size: 203, 305
   size: 203, 305
   orig: 203, 305
   orig: 203, 305
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-R_wing03
+right-wing03
   rotate: false
   rotate: false
-  xy: 511, 460
+  xy: 196, 363
   size: 272, 247
   size: 272, 247
   orig: 272, 247
   orig: 272, 247
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-R_wing05
+right-wing04
   rotate: false
   rotate: false
-  xy: 196, 232
+  xy: 204, 612
+  size: 279, 144
+  orig: 279, 144
+  offset: 0, 0
+  index: -1
+right-wing05
+  rotate: true
+  xy: 773, 517
   size: 251, 229
   size: 251, 229
   orig: 251, 229
   orig: 251, 229
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-R_wing06
+right-wing06
   rotate: false
   rotate: false
-  xy: 2, 562
+  xy: 2, 652
   size: 200, 366
   size: 200, 366
   orig: 200, 366
   orig: 200, 366
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-R_wing07
+right-wing07
   rotate: true
   rotate: true
-  xy: 449, 258
+  xy: 485, 416
   size: 200, 263
   size: 200, 263
   orig: 200, 263
   orig: 200, 263
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-R_wing08
+right-wing08
   rotate: false
   rotate: false
-  xy: 467, 2
+  xy: 207, 107
   size: 234, 254
   size: 234, 254
   orig: 234, 254
   orig: 234, 254
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-R_wing09
-  rotate: false
-  xy: 217, 26
+right-wing09
+  rotate: true
+  xy: 814, 770
   size: 248, 204
   size: 248, 204
   orig: 248, 204
   orig: 248, 204
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-back
-  rotate: false
-  xy: 703, 2
-  size: 190, 185
-  orig: 190, 185
-  offset: 0, 0
-  index: -1
-chest
-  rotate: true
-  xy: 895, 170
-  size: 136, 122
-  orig: 136, 122
-  offset: 0, 0
-  index: -1
-front_toeA
-  rotate: false
-  xy: 976, 972
-  size: 29, 50
-  orig: 29, 50
-  offset: 0, 0
-  index: -1
-head
-  rotate: false
-  xy: 204, 668
-  size: 296, 260
-  orig: 296, 260
-  offset: 0, 0
-  index: -1
-logo
-  rotate: false
-  xy: 2, 930
-  size: 897, 92
-  orig: 897, 92
-  offset: 0, 0
-  index: -1
 tail01
 tail01
-  rotate: false
-  xy: 895, 308
+  rotate: true
+  xy: 826, 18
   size: 120, 153
   size: 120, 153
   orig: 120, 153
   orig: 120, 153
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
 tail03
 tail03
   rotate: false
   rotate: false
-  xy: 901, 930
+  xy: 358, 13
   size: 73, 92
   size: 73, 92
   orig: 73, 92
   orig: 73, 92
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
 
 
 dragon2.png
 dragon2.png
-size: 1020,510
+size: 1024,1024
 format: RGBA8888
 format: RGBA8888
 filter: Linear,Linear
 filter: Linear,Linear
 repeat: none
 repeat: none
-L_front_leg
-  rotate: true
-  xy: 391, 141
-  size: 84, 57
-  orig: 84, 57
+back
+  rotate: false
+  xy: 190, 800
+  size: 190, 185
+  orig: 190, 185
+  offset: 0, 0
+  index: -1
+chest
+  rotate: false
+  xy: 382, 863
+  size: 136, 122
+  orig: 136, 122
+  offset: 0, 0
+  index: -1
+front-toe-b
+  rotate: false
+  xy: 112, 155
+  size: 56, 57
+  orig: 56, 57
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-L_front_thigh
+left-front-thigh
   rotate: false
   rotate: false
-  xy: 446, 269
+  xy: 278, 635
   size: 84, 72
   size: 84, 72
   orig: 84, 72
   orig: 84, 72
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-L_rear_leg
+left-rear-leg
   rotate: true
   rotate: true
-  xy: 888, 342
-  size: 168, 132
+  xy: 2, 603
+  size: 206, 177
   orig: 206, 177
   orig: 206, 177
-  offset: 19, 20
-  index: -1
-L_wing04
-  rotate: false
-  xy: 256, 227
-  size: 188, 135
-  orig: 188, 135
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-L_wing07
+left-wing03
   rotate: false
   rotate: false
-  xy: 2, 109
-  size: 159, 255
-  orig: 159, 255
+  xy: 2, 811
+  size: 186, 207
+  orig: 186, 207
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-L_wing08
-  rotate: true
-  xy: 705, 346
+left-wing08
+  rotate: false
+  xy: 2, 214
   size: 164, 181
   size: 164, 181
   orig: 164, 181
   orig: 164, 181
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-L_wing09
-  rotate: false
-  xy: 499, 343
+left-wing09
+  rotate: true
+  xy: 2, 397
   size: 204, 167
   size: 204, 167
   orig: 204, 167
   orig: 204, 167
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-R_front_leg
+right-front-leg
   rotate: false
   rotate: false
-  xy: 273, 34
+  xy: 278, 709
   size: 101, 89
   size: 101, 89
   orig: 101, 89
   orig: 101, 89
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-R_front_thigh
+right-front-thigh
   rotate: false
   rotate: false
-  xy: 163, 106
+  xy: 2, 104
   size: 108, 108
   size: 108, 108
   orig: 108, 108
   orig: 108, 108
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-R_rear_leg
+right-rear-leg
   rotate: false
   rotate: false
-  xy: 273, 125
+  xy: 2, 2
   size: 116, 100
   size: 116, 100
   orig: 116, 100
   orig: 116, 100
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
-R_rear_thigh
-  rotate: false
-  xy: 163, 216
-  size: 91, 148
-  orig: 91, 149
-  offset: 0, 0
-  index: -1
-R_wing04
+right-rear-toe
   rotate: false
   rotate: false
-  xy: 2, 366
-  size: 279, 144
-  orig: 279, 144
-  offset: 0, 0
-  index: -1
-chin
-  rotate: false
-  xy: 283, 364
-  size: 214, 146
-  orig: 214, 146
-  offset: 0, 0
-  index: -1
-front_toeB
-  rotate: false
-  xy: 590, 284
-  size: 56, 57
-  orig: 56, 57
-  offset: 0, 0
-  index: -1
-rear-toe
-  rotate: true
-  xy: 2, 2
-  size: 105, 77
+  xy: 382, 784
+  size: 109, 77
   orig: 109, 77
   orig: 109, 77
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
 tail02
 tail02
-  rotate: true
-  xy: 151, 9
+  rotate: false
+  xy: 181, 678
   size: 95, 120
   size: 95, 120
   orig: 95, 120
   orig: 95, 120
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
 tail04
 tail04
   rotate: false
   rotate: false
-  xy: 532, 270
+  xy: 381, 711
   size: 56, 71
   size: 56, 71
   orig: 56, 71
   orig: 56, 71
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
 tail05
 tail05
   rotate: false
   rotate: false
-  xy: 648, 282
+  xy: 439, 723
   size: 52, 59
   size: 52, 59
   orig: 52, 59
   orig: 52, 59
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
 tail06
 tail06
-  rotate: true
-  xy: 81, 12
+  rotate: false
+  xy: 181, 608
   size: 95, 68
   size: 95, 68
   orig: 95, 68
   orig: 95, 68
   offset: 0, 0
   offset: 0, 0
   index: -1
   index: -1
+thiagobrayner
+  rotate: false
+  xy: 190, 987
+  size: 350, 31
+  orig: 350, 31
+  offset: 0, 0
+  index: -1

+ 308 - 178
spine-unity/Assets/Examples/Spine/Dragon/dragon.json

@@ -1,44 +1,174 @@
 {
 {
-"skeleton": { "hash": "wKRjA+djIs9K05d/19sZhwmP3Ow", "spine": "3.6.05-beta", "width": 897, "height": 716.36, "images": "./images/" },
+"skeleton": { "hash": "vDJjplNvnyjhUZ09rp3xqyGoiKo", "spine": "3.6.30-beta", "width": 660.39, "height": 604.09, "images": "./images/" },
 "bones": [
 "bones": [
 	{ "name": "root", "y": -176.12 },
 	{ "name": "root", "y": -176.12 },
-	{ "name": "COG", "parent": "root", "y": 176.12 },
-	{ "name": "chest", "parent": "COG", "length": 31.24, "rotation": 161.7, "x": 52.53, "y": 15.35 },
-	{ "name": "L_front_thigh", "parent": "chest", "length": 67.42, "rotation": 138.94, "x": -45.59, "y": 7.93 },
-	{ "name": "L_front_leg", "parent": "L_front_thigh", "length": 51.58, "rotation": 43.36, "x": 67.42, "y": 0.03 },
-	{ "name": "L_front_toe1", "parent": "L_front_leg", "length": 51.45, "rotation": -98.01, "x": 45.54, "y": 2.43 },
-	{ "name": "L_front_toe2", "parent": "L_front_leg", "length": 61.98, "rotation": -55.26, "x": 51.58, "y": -0.13 },
-	{ "name": "L_front_toe3", "parent": "L_front_leg", "length": 45.65, "rotation": -11.14, "x": 54.19, "y": 0.6, "scaleX": 1.135 },
-	{ "name": "L_front_toe4", "parent": "L_front_leg", "length": 53.47, "rotation": 19.43, "x": 50.61, "y": 7.09, "scaleX": 1.135 },
-	{ "name": "back", "parent": "COG", "length": 115.38, "rotation": 151.83, "x": 16.04, "y": 27.94 },
-	{ "name": "R_rear_thigh", "parent": "back", "length": 123.47, "rotation": 104.88, "x": 65.31, "y": 59.89 },
-	{ "name": "L_rear_thigh", "parent": "R_rear_thigh", "length": 88.06, "rotation": 28.35, "x": -8.59, "y": 30.19 },
-	{ "name": "L_rear_leg", "parent": "L_rear_thigh", "length": 103.74, "rotation": -122.41, "x": 96.04, "y": -0.97 },
-	{ "name": "L_wing", "parent": "chest", "length": 301.12, "rotation": -75.51, "x": -7.25, "y": -24.66 },
-	{ "name": "R_front_thigh", "parent": "chest", "length": 81.64, "rotation": 67.97, "x": -10.89, "y": 28.25 },
-	{ "name": "R_front_leg", "parent": "R_front_thigh", "length": 66.53, "rotation": 92.7, "x": 83.05, "y": -0.31 },
-	{ "name": "R_front_toe1", "parent": "R_front_leg", "length": 46.66, "rotation": 8.59, "x": 70.03, "y": 5.31 },
-	{ "name": "R_front_toe2", "parent": "R_front_leg", "length": 53.67, "rotation": -35.02, "x": 66.53, "y": 0.34 },
-	{ "name": "R_front_toe3", "parent": "R_front_leg", "length": 58.39, "rotation": -74.67, "x": 62.1, "y": -0.79 },
-	{ "name": "R_rear_leg", "parent": "R_rear_thigh", "length": 91.06, "rotation": -129.04, "x": 123.47, "y": -0.27 },
-	{ "name": "R_rear_toe1", "parent": "R_rear_leg", "length": 95, "rotation": 141.98, "x": 90.07, "y": 2.12 },
-	{ "name": "R_rear_toe2", "parent": "R_rear_leg", "length": 99.29, "rotation": 125.32, "x": 89.6, "y": 1.52 },
-	{ "name": "R_rear_toe3", "parent": "R_rear_leg", "length": 103.46, "rotation": 112.27, "x": 91.06, "y": -0.35 },
-	{ "name": "neck", "parent": "COG", "length": 41.37, "rotation": 39.06, "x": 64.76, "y": 11.98 },
-	{ "name": "head", "parent": "neck", "length": 188.84, "rotation": 8.07, "x": 69.96, "y": 2.5 },
-	{ "name": "R_wing", "parent": "head", "length": 359.5, "rotation": 83.21, "x": -74.68, "y": 20.91 },
-	{ "name": "chin", "parent": "neck", "length": 153.16, "rotation": -69.07, "x": 64.63, "y": -6.99 },
-	{ "name": "tail1", "parent": "back", "length": 65.65, "rotation": 44.32, "x": 115.38, "y": -0.2 },
-	{ "name": "tail2", "parent": "tail1", "length": 54.5, "rotation": 12, "x": 65.65, "y": 0.23 },
-	{ "name": "tail3", "parent": "tail2", "length": 41.78, "rotation": 1.8, "x": 54.5, "y": 0.37 },
-	{ "name": "tail4", "parent": "tail3", "length": 34.19, "rotation": -1.8, "x": 41.78, "y": 0.16 },
-	{ "name": "tail5", "parent": "tail4", "length": 32.33, "rotation": -3.15, "x": 34.19, "y": -0.19 },
-	{ "name": "tail6", "parent": "tail5", "length": 80.08, "rotation": -29.55, "x": 32.33, "y": -0.23 }
+	{ "name": "center", "parent": "root", "y": 176.12, "color": "ffe300ff" },
+	{ "name": "back", "parent": "center", "length": 115.38, "rotation": 151.83, "x": 16.04, "y": 27.94, "color": "ffe400ff" },
+	{ "name": "chest", "parent": "center", "length": 31.24, "rotation": 161.7, "x": 52.53, "y": 15.35, "color": "ffe400ff" },
+	{ "name": "neck", "parent": "center", "length": 41.37, "rotation": 39.06, "x": 64.76, "y": 11.98, "color": "ffe400ff" },
+	{ "name": "chin", "parent": "neck", "length": 153.16, "rotation": -69.07, "x": 64.63, "y": -6.99, "color": "ffe400ff" },
+	{ "name": "head", "parent": "neck", "length": 188.84, "rotation": 8.07, "x": 69.96, "y": 2.5, "color": "ffe400ff" },
+	{ "name": "left-front-thigh", "parent": "chest", "length": 67.42, "rotation": 138.94, "x": -45.59, "y": 7.93, "color": "ff0000ff" },
+	{
+		"name": "left-front-leg",
+		"parent": "left-front-thigh",
+		"length": 51.58,
+		"rotation": 43.36,
+		"x": 67.42,
+		"y": 0.03,
+		"color": "ff0000ff"
+	},
+	{
+		"name": "left-front-toe1",
+		"parent": "left-front-leg",
+		"length": 51.45,
+		"rotation": -98.01,
+		"x": 45.54,
+		"y": 2.43,
+		"color": "ff0000ff"
+	},
+	{
+		"name": "left-front-toe2",
+		"parent": "left-front-leg",
+		"length": 61.98,
+		"rotation": -55.26,
+		"x": 51.58,
+		"y": -0.13,
+		"color": "ff0000ff"
+	},
+	{
+		"name": "left-front-toe3",
+		"parent": "left-front-leg",
+		"length": 45.65,
+		"rotation": -11.14,
+		"x": 54.19,
+		"y": 0.6,
+		"scaleX": 1.135,
+		"color": "ff0000ff"
+	},
+	{
+		"name": "left-front-toe4",
+		"parent": "left-front-leg",
+		"length": 53.47,
+		"rotation": 19.43,
+		"x": 50.61,
+		"y": 7.09,
+		"scaleX": 1.135,
+		"color": "ff0000ff"
+	},
+	{ "name": "right-rear-thigh", "parent": "back", "length": 123.47, "rotation": 104.88, "x": 65.31, "y": 59.89, "color": "29ff00ff" },
+	{
+		"name": "left-rear-thigh",
+		"parent": "right-rear-thigh",
+		"length": 88.06,
+		"rotation": 28.35,
+		"x": -8.59,
+		"y": 30.19,
+		"color": "ff0000ff"
+	},
+	{
+		"name": "left-rear-leg",
+		"parent": "left-rear-thigh",
+		"length": 103.74,
+		"rotation": -122.41,
+		"x": 96.04,
+		"y": -0.97,
+		"color": "ff0000ff"
+	},
+	{ "name": "left-wing", "parent": "chest", "length": 301.12, "rotation": -75.51, "x": -7.25, "y": -24.66, "color": "ff0000ff" },
+	{
+		"name": "right-front-thigh",
+		"parent": "chest",
+		"length": 81.64,
+		"rotation": 67.97,
+		"x": -10.89,
+		"y": 28.25,
+		"color": "29ff00ff"
+	},
+	{
+		"name": "right-front-leg",
+		"parent": "right-front-thigh",
+		"length": 66.53,
+		"rotation": 92.7,
+		"x": 83.05,
+		"y": -0.31,
+		"color": "29ff00ff"
+	},
+	{
+		"name": "right-front-toe1",
+		"parent": "right-front-leg",
+		"length": 46.66,
+		"rotation": 8.59,
+		"x": 70.03,
+		"y": 5.31,
+		"color": "29ff00ff"
+	},
+	{
+		"name": "right-front-toe2",
+		"parent": "right-front-leg",
+		"length": 53.67,
+		"rotation": -35.02,
+		"x": 66.53,
+		"y": 0.34,
+		"color": "29ff00ff"
+	},
+	{
+		"name": "right-front-toe3",
+		"parent": "right-front-leg",
+		"length": 58.39,
+		"rotation": -74.67,
+		"x": 62.1,
+		"y": -0.79,
+		"color": "29ff00ff"
+	},
+	{
+		"name": "right-rear-leg",
+		"parent": "right-rear-thigh",
+		"length": 91.06,
+		"rotation": -129.04,
+		"x": 123.47,
+		"y": -0.27,
+		"color": "29ff00ff"
+	},
+	{
+		"name": "right-rear-toe1",
+		"parent": "right-rear-leg",
+		"length": 95,
+		"rotation": 141.98,
+		"x": 90.07,
+		"y": 2.12,
+		"color": "29ff00ff"
+	},
+	{
+		"name": "right-rear-toe2",
+		"parent": "right-rear-leg",
+		"length": 99.29,
+		"rotation": 125.32,
+		"x": 89.6,
+		"y": 1.52,
+		"color": "29ff00ff"
+	},
+	{
+		"name": "right-rear-toe3",
+		"parent": "right-rear-leg",
+		"length": 103.46,
+		"rotation": 112.27,
+		"x": 91.06,
+		"y": -0.35,
+		"color": "29ff00ff"
+	},
+	{ "name": "right-wing", "parent": "head", "length": 359.5, "rotation": 83.21, "x": -74.68, "y": 20.91, "color": "29ff00ff" },
+	{ "name": "tail1", "parent": "back", "length": 65.65, "rotation": 44.32, "x": 115.38, "y": -0.2, "color": "ffe400ff" },
+	{ "name": "tail2", "parent": "tail1", "length": 54.5, "rotation": 12, "x": 65.65, "y": 0.23, "color": "ffe400ff" },
+	{ "name": "tail3", "parent": "tail2", "length": 41.78, "rotation": 1.8, "x": 54.5, "y": 0.37, "color": "ffe400ff" },
+	{ "name": "tail4", "parent": "tail3", "length": 34.19, "rotation": -1.8, "x": 41.78, "y": 0.16, "color": "ffe400ff" },
+	{ "name": "tail5", "parent": "tail4", "length": 32.33, "rotation": -3.15, "x": 34.19, "y": -0.19, "color": "ffe400ff" },
+	{ "name": "tail6", "parent": "tail5", "length": 80.08, "rotation": -29.55, "x": 32.33, "y": -0.23, "color": "ffe400ff" }
 ],
 ],
 "slots": [
 "slots": [
-	{ "name": "L_rear_leg", "bone": "L_rear_leg", "attachment": "L_rear_leg" },
-	{ "name": "L_rear_thigh", "bone": "L_rear_thigh", "attachment": "L_rear_thigh" },
-	{ "name": "L_wing", "bone": "L_wing", "attachment": "L_wing01" },
+	{ "name": "left-rear-leg", "bone": "left-rear-leg", "attachment": "left-rear-leg" },
+	{ "name": "left-rear-thigh", "bone": "left-rear-thigh", "attachment": "left-rear-thigh" },
+	{ "name": "left-wing", "bone": "left-wing", "attachment": "left-wing01" },
 	{ "name": "tail6", "bone": "tail6", "attachment": "tail06" },
 	{ "name": "tail6", "bone": "tail6", "attachment": "tail06" },
 	{ "name": "tail5", "bone": "tail5", "attachment": "tail05" },
 	{ "name": "tail5", "bone": "tail5", "attachment": "tail05" },
 	{ "name": "tail4", "bone": "tail4", "attachment": "tail04" },
 	{ "name": "tail4", "bone": "tail4", "attachment": "tail04" },
@@ -46,120 +176,117 @@
 	{ "name": "tail2", "bone": "tail2", "attachment": "tail02" },
 	{ "name": "tail2", "bone": "tail2", "attachment": "tail02" },
 	{ "name": "tail1", "bone": "tail1", "attachment": "tail01" },
 	{ "name": "tail1", "bone": "tail1", "attachment": "tail01" },
 	{ "name": "back", "bone": "back", "attachment": "back" },
 	{ "name": "back", "bone": "back", "attachment": "back" },
-	{ "name": "L_front_thigh", "bone": "L_front_thigh", "attachment": "L_front_thigh" },
-	{ "name": "L_front_leg", "bone": "L_front_leg", "attachment": "L_front_leg" },
-	{ "name": "L_front_toe1", "bone": "L_front_toe1", "attachment": "front_toeA" },
-	{ "name": "L_front_toe4", "bone": "L_front_toe4", "attachment": "front_toeB" },
-	{ "name": "L_front_toe3", "bone": "L_front_toe3", "attachment": "front_toeB" },
-	{ "name": "L_front_toe2", "bone": "L_front_toe2", "attachment": "front_toeB" },
+	{ "name": "left-front-thigh", "bone": "left-front-thigh", "attachment": "left-front-thigh" },
+	{ "name": "left-front-leg", "bone": "left-front-leg", "attachment": "left-front-leg" },
+	{ "name": "left-front-toe1", "bone": "left-front-toe1", "attachment": "front-toe-a" },
+	{ "name": "left-front-toe4", "bone": "left-front-toe4", "attachment": "front-toe-b" },
+	{ "name": "left-front-toe3", "bone": "left-front-toe3", "attachment": "front-toe-b" },
+	{ "name": "left-front-toe2", "bone": "left-front-toe2", "attachment": "front-toe-b" },
 	{ "name": "chest", "bone": "chest", "attachment": "chest" },
 	{ "name": "chest", "bone": "chest", "attachment": "chest" },
-	{ "name": "R_rear_toe1", "bone": "R_rear_toe1", "attachment": "rear-toe" },
-	{ "name": "R_rear_toe2", "bone": "R_rear_toe2", "attachment": "rear-toe" },
-	{ "name": "R_rear_toe3", "bone": "R_rear_toe3", "attachment": "rear-toe" },
-	{ "name": "R_rear_leg", "bone": "R_rear_leg", "attachment": "R_rear_leg" },
-	{ "name": "R_rear_thigh", "bone": "R_rear_thigh", "attachment": "R_rear_thigh" },
-	{ "name": "R_front_toe1", "bone": "R_front_toe1", "attachment": "front_toeB" },
-	{ "name": "R_front_thigh", "bone": "R_front_thigh", "attachment": "R_front_thigh" },
-	{ "name": "R_front_leg", "bone": "R_front_leg", "attachment": "R_front_leg" },
-	{ "name": "R_front_toe2", "bone": "R_front_toe2", "attachment": "front_toeB" },
-	{ "name": "R_front_toe3", "bone": "R_front_toe3", "attachment": "front_toeB" },
+	{ "name": "right-rear-toe1", "bone": "right-rear-toe1", "attachment": "right-rear-toe" },
+	{ "name": "right-rear-toe2", "bone": "right-rear-toe2", "attachment": "right-rear-toe" },
+	{ "name": "right-rear-toe3", "bone": "right-rear-toe3", "attachment": "right-rear-toe" },
+	{ "name": "right-rear-leg", "bone": "right-rear-leg", "attachment": "right-rear-leg" },
+	{ "name": "right-rear-thigh", "bone": "right-rear-thigh", "attachment": "right-rear-thigh" },
+	{ "name": "right-front-toe1", "bone": "right-front-toe1", "attachment": "front-toe-b" },
+	{ "name": "right-front-thigh", "bone": "right-front-thigh", "attachment": "right-front-thigh" },
+	{ "name": "right-front-leg", "bone": "right-front-leg", "attachment": "right-front-leg" },
+	{ "name": "right-front-toe2", "bone": "right-front-toe2", "attachment": "front-toe-b" },
+	{ "name": "right-front-toe3", "bone": "right-front-toe3", "attachment": "front-toe-b" },
 	{ "name": "chin", "bone": "chin", "attachment": "chin" },
 	{ "name": "chin", "bone": "chin", "attachment": "chin" },
-	{ "name": "R_wing", "bone": "R_wing", "attachment": "R_wing01" },
+	{ "name": "right-wing", "bone": "right-wing", "attachment": "right-wing01" },
 	{ "name": "head", "bone": "head", "attachment": "head" },
 	{ "name": "head", "bone": "head", "attachment": "head" },
-	{ "name": "logo", "bone": "root", "attachment": "logo" }
+	{ "name": "thiagobrayner", "bone": "root", "attachment": "thiagobrayner" }
 ],
 ],
 "skins": {
 "skins": {
 	"default": {
 	"default": {
-		"L_front_leg": {
-			"L_front_leg": { "x": 14.69, "y": 0.49, "rotation": 16, "width": 84, "height": 57 }
-		},
-		"L_front_thigh": {
-			"L_front_thigh": { "x": 27.66, "y": -11.59, "rotation": 58.66, "width": 84, "height": 72 }
+		"back": {
+			"back": { "x": 35.85, "y": 19.99, "rotation": -151.83, "width": 190, "height": 185 }
 		},
 		},
-		"L_front_toe1": {
-			"front_toeA": { "x": 31.93, "y": 0.61, "rotation": 109.56, "width": 29, "height": 50 }
+		"chest": {
+			"chest": { "x": -14.6, "y": 24.79, "rotation": -161.7, "width": 136, "height": 122 }
 		},
 		},
-		"L_front_toe2": {
-			"front_toeB": { "x": 26.84, "y": -4.95, "rotation": 109.51, "width": 56, "height": 57 }
+		"chin": {
+			"chin": { "x": 66.55, "y": 7.32, "rotation": 30.01, "width": 214, "height": 146 }
 		},
 		},
-		"L_front_toe3": {
-			"front_toeB": { "x": 18.22, "y": -7.22, "scaleX": 0.881, "scaleY": 0.941, "rotation": 99.71, "width": 56, "height": 57 }
+		"head": {
+			"head": { "x": 76.69, "y": 32.21, "rotation": -47.13, "width": 296, "height": 260 }
 		},
 		},
-		"L_front_toe4": {
-			"front_toeB": { "x": 23.21, "y": -11.69, "scaleX": 0.881, "rotation": 79.89, "width": 56, "height": 57 }
+		"left-front-leg": {
+			"left-front-leg": { "x": 14.69, "y": 0.49, "rotation": 16, "width": 84, "height": 57 }
 		},
 		},
-		"L_rear_leg": {
-			"L_rear_leg": { "x": 67.29, "y": 12.63, "rotation": -162.65, "width": 206, "height": 177 }
+		"left-front-thigh": {
+			"left-front-thigh": { "x": 27.66, "y": -11.59, "rotation": 58.66, "width": 84, "height": 72 }
 		},
 		},
-		"L_rear_thigh": {
-			"L_rear_thigh": { "x": 56.03, "y": 27.39, "rotation": 74.94, "width": 91, "height": 149 }
+		"left-front-toe1": {
+			"front-toe-a": { "x": 31.93, "y": 0.61, "rotation": 109.56, "width": 29, "height": 50 }
 		},
 		},
-		"L_wing": {
-			"L_wing01": { "x": 129.21, "y": -45.49, "rotation": -83.7, "width": 191, "height": 256 },
-			"L_wing02": { "x": 126.38, "y": -31.69, "rotation": -86.19, "width": 179, "height": 269 },
-			"L_wing03": { "x": 110.27, "y": -90.89, "rotation": -86.19, "width": 186, "height": 207 },
-			"L_wing04": { "x": -61.62, "y": -83.27, "rotation": -86.19, "width": 188, "height": 135 },
-			"L_wing05": { "x": -90.02, "y": -78.14, "rotation": -86.19, "width": 218, "height": 213 },
-			"L_wing06": { "x": -143.77, "y": -83.72, "rotation": -86.19, "width": 192, "height": 331 },
-			"L_wing07": { "x": -133.05, "y": -33.9, "rotation": -86.19, "width": 159, "height": 255 },
-			"L_wing08": { "x": 50.15, "y": -15.71, "rotation": -86.19, "width": 164, "height": 181 },
-			"L_wing09": { "x": 85.94, "y": -11.33, "rotation": -86.19, "width": 204, "height": 167 }
+		"left-front-toe2": {
+			"front-toe-b": { "x": 26.84, "y": -4.95, "rotation": 109.51, "width": 56, "height": 57 }
 		},
 		},
-		"R_front_leg": {
-			"R_front_leg": { "x": 17.8, "y": 4.23, "rotation": 37.63, "width": 101, "height": 89 }
+		"left-front-toe3": {
+			"front-toe-b": { "x": 18.22, "y": -7.22, "scaleX": 0.881, "scaleY": 0.941, "rotation": 99.71, "width": 56, "height": 57 }
 		},
 		},
-		"R_front_thigh": {
-			"R_front_thigh": { "x": 35.29, "y": 2.11, "rotation": 130.33, "width": 108, "height": 108 }
+		"left-front-toe4": {
+			"front-toe-b": { "x": 23.21, "y": -11.69, "scaleX": 0.881, "rotation": 79.89, "width": 56, "height": 57 }
 		},
 		},
-		"R_front_toe1": {
-			"front_toeB": { "x": 24.5, "y": -2.61, "rotation": 104.18, "width": 56, "height": 57 }
+		"left-rear-leg": {
+			"left-rear-leg": { "x": 67.29, "y": 12.63, "rotation": -162.65, "width": 206, "height": 177 }
 		},
 		},
-		"R_front_toe2": {
-			"front_toeB": { "x": 26.39, "y": 1.17, "rotation": 104.58, "width": 56, "height": 57 }
+		"left-rear-thigh": {
+			"left-rear-thigh": { "x": 56.03, "y": 27.39, "rotation": 74.94, "width": 91, "height": 149 }
 		},
 		},
-		"R_front_toe3": {
-			"front_toeB": { "x": 30.67, "y": -0.07, "rotation": 112.3, "width": 56, "height": 57 }
+		"left-wing": {
+			"left-wing01": { "x": 129.21, "y": -45.49, "rotation": -83.7, "width": 191, "height": 256 },
+			"left-wing02": { "x": 126.38, "y": -31.69, "rotation": -86.19, "width": 179, "height": 269 },
+			"left-wing03": { "x": 110.27, "y": -90.89, "rotation": -86.19, "width": 186, "height": 207 },
+			"left-wing04": { "x": -61.62, "y": -83.27, "rotation": -86.19, "width": 188, "height": 135 },
+			"left-wing05": { "x": -90.02, "y": -78.14, "rotation": -86.19, "width": 218, "height": 213 },
+			"left-wing06": { "x": -143.77, "y": -83.72, "rotation": -86.19, "width": 192, "height": 331 },
+			"left-wing07": { "x": -133.05, "y": -33.9, "rotation": -86.19, "width": 159, "height": 255 },
+			"left-wing08": { "x": 50.15, "y": -15.71, "rotation": -86.19, "width": 164, "height": 181 },
+			"left-wing09": { "x": 85.94, "y": -11.33, "rotation": -86.19, "width": 204, "height": 167 }
 		},
 		},
-		"R_rear_leg": {
-			"R_rear_leg": { "x": 60.88, "y": -5.73, "rotation": -127.67, "width": 116, "height": 100 }
+		"right-front-leg": {
+			"right-front-leg": { "x": 17.8, "y": 4.23, "rotation": 37.63, "width": 101, "height": 89 }
 		},
 		},
-		"R_rear_thigh": {
-			"R_rear_thigh": { "x": 53.25, "y": 12.58, "rotation": 103.29, "width": 91, "height": 149 }
+		"right-front-thigh": {
+			"right-front-thigh": { "x": 35.29, "y": 2.11, "rotation": 130.33, "width": 108, "height": 108 }
 		},
 		},
-		"R_rear_toe1": {
-			"rear-toe": { "x": 54.76, "y": -5.72, "rotation": 134.79, "width": 109, "height": 77 }
+		"right-front-toe1": {
+			"front-toe-b": { "x": 24.5, "y": -2.61, "rotation": 104.18, "width": 56, "height": 57 }
 		},
 		},
-		"R_rear_toe2": {
-			"rear-toe": { "x": 57.03, "y": -7.23, "rotation": 134.43, "width": 109, "height": 77 }
+		"right-front-toe2": {
+			"front-toe-b": { "x": 26.39, "y": 1.17, "rotation": 104.58, "width": 56, "height": 57 }
 		},
 		},
-		"R_rear_toe3": {
-			"rear-toe": { "x": 47.46, "y": -7.64, "rotation": 134.34, "width": 109, "height": 77 }
+		"right-front-toe3": {
+			"front-toe-b": { "x": 30.67, "y": -0.07, "rotation": 112.3, "width": 56, "height": 57 }
 		},
 		},
-		"R_wing": {
-			"R_wing01": { "x": 170.08, "y": -23.68, "rotation": -130.34, "width": 219, "height": 310 },
-			"R_wing02": { "x": 171.15, "y": -19.33, "rotation": -130.34, "width": 203, "height": 305 },
-			"R_wing03": { "x": 166.46, "y": 29.24, "rotation": -130.34, "width": 272, "height": 247 },
-			"R_wing04": { "x": 42.94, "y": 134.06, "rotation": -130.34, "width": 279, "height": 144 },
-			"R_wing05": { "x": -8.84, "y": 142.59, "rotation": -130.34, "width": 251, "height": 229 },
-			"R_wing06": { "x": -123.33, "y": 111.22, "rotation": -130.34, "width": 200, "height": 366 },
-			"R_wing07": { "x": -40.17, "y": 118.03, "rotation": -130.34, "width": 200, "height": 263 },
-			"R_wing08": { "x": 48.02, "y": 28.76, "rotation": -130.34, "width": 234, "height": 254 },
-			"R_wing09": { "x": 128.1, "y": 21.13, "rotation": -130.34, "width": 248, "height": 204 }
+		"right-rear-leg": {
+			"right-rear-leg": { "x": 60.88, "y": -5.73, "rotation": -127.67, "width": 116, "height": 100 }
 		},
 		},
-		"back": {
-			"back": { "x": 35.85, "y": 19.99, "rotation": -151.83, "width": 190, "height": 185 }
+		"right-rear-thigh": {
+			"right-rear-thigh": { "x": 53.25, "y": 12.58, "rotation": 103.29, "width": 91, "height": 149 }
 		},
 		},
-		"chest": {
-			"chest": { "x": -14.6, "y": 24.79, "rotation": -161.7, "width": 136, "height": 122 }
+		"right-rear-toe1": {
+			"right-rear-toe": { "x": 54.76, "y": -5.72, "rotation": 134.79, "width": 109, "height": 77 }
 		},
 		},
-		"chin": {
-			"chin": { "x": 66.55, "y": 7.32, "rotation": 30.01, "width": 214, "height": 146 }
+		"right-rear-toe2": {
+			"right-rear-toe": { "x": 57.03, "y": -7.23, "rotation": 134.43, "width": 109, "height": 77 }
 		},
 		},
-		"head": {
-			"head": { "x": 76.69, "y": 32.21, "rotation": -47.13, "width": 296, "height": 260 }
+		"right-rear-toe3": {
+			"right-rear-toe": { "x": 47.46, "y": -7.64, "rotation": 134.34, "width": 109, "height": 77 }
 		},
 		},
-		"logo": {
-			"logo": { "y": -176.72, "width": 897, "height": 92 }
+		"right-wing": {
+			"right-wing01": { "x": 170.08, "y": -23.68, "rotation": -130.34, "width": 219, "height": 310 },
+			"right-wing02": { "x": 171.15, "y": -19.33, "rotation": -130.34, "width": 203, "height": 305 },
+			"right-wing03": { "x": 166.46, "y": 29.24, "rotation": -130.34, "width": 272, "height": 247 },
+			"right-wing04": { "x": 42.94, "y": 134.06, "rotation": -130.34, "width": 279, "height": 144 },
+			"right-wing05": { "x": -8.84, "y": 142.59, "rotation": -130.34, "width": 251, "height": 229 },
+			"right-wing06": { "x": -123.33, "y": 111.22, "rotation": -130.34, "width": 200, "height": 366 },
+			"right-wing07": { "x": -40.17, "y": 118.03, "rotation": -130.34, "width": 200, "height": 263 },
+			"right-wing08": { "x": 48.02, "y": 28.76, "rotation": -130.34, "width": 234, "height": 254 },
+			"right-wing09": { "x": 128.1, "y": 21.13, "rotation": -130.34, "width": 248, "height": 204 }
 		},
 		},
 		"tail1": {
 		"tail1": {
 			"tail01": { "x": 22.6, "y": -4.5, "rotation": 163.85, "width": 120, "height": 153 }
 			"tail01": { "x": 22.6, "y": -4.5, "rotation": 163.85, "width": 120, "height": 153 }
@@ -178,55 +305,58 @@
 		},
 		},
 		"tail6": {
 		"tail6": {
 			"tail06": { "x": 28.02, "y": -16.83, "rotation": -175.45, "width": 95, "height": 68 }
 			"tail06": { "x": 28.02, "y": -16.83, "rotation": -175.45, "width": 95, "height": 68 }
+		},
+		"thiagobrayner": {
+			"thiagobrayner": { "y": -95, "width": 350, "height": 31 }
 		}
 		}
 	}
 	}
 },
 },
 "animations": {
 "animations": {
 	"flying": {
 	"flying": {
 		"slots": {
 		"slots": {
-			"L_wing": {
+			"left-wing": {
 				"attachment": [
 				"attachment": [
-					{ "time": 0, "name": "L_wing01" },
-					{ "time": 0.0667, "name": "L_wing02" },
-					{ "time": 0.1333, "name": "L_wing03" },
-					{ "time": 0.2, "name": "L_wing04" },
-					{ "time": 0.2667, "name": "L_wing05" },
-					{ "time": 0.3333, "name": "L_wing06" },
-					{ "time": 0.4, "name": "L_wing07" },
-					{ "time": 0.4667, "name": "L_wing08" },
-					{ "time": 0.5333, "name": "L_wing09" },
-					{ "time": 0.6, "name": "L_wing01" },
-					{ "time": 0.7333, "name": "L_wing02" },
-					{ "time": 0.8, "name": "L_wing03" },
-					{ "time": 0.8333, "name": "L_wing04" },
-					{ "time": 0.8667, "name": "L_wing05" },
-					{ "time": 0.9, "name": "L_wing06" },
-					{ "time": 0.9333, "name": "L_wing07" },
-					{ "time": 0.9667, "name": "L_wing08" },
-					{ "time": 1, "name": "L_wing01" }
+					{ "time": 0, "name": "left-wing01" },
+					{ "time": 0.0667, "name": "left-wing02" },
+					{ "time": 0.1333, "name": "left-wing03" },
+					{ "time": 0.2, "name": "left-wing04" },
+					{ "time": 0.2667, "name": "left-wing05" },
+					{ "time": 0.3333, "name": "left-wing06" },
+					{ "time": 0.4, "name": "left-wing07" },
+					{ "time": 0.4667, "name": "left-wing08" },
+					{ "time": 0.5333, "name": "left-wing09" },
+					{ "time": 0.6, "name": "left-wing01" },
+					{ "time": 0.7333, "name": "left-wing02" },
+					{ "time": 0.8, "name": "left-wing03" },
+					{ "time": 0.8333, "name": "left-wing04" },
+					{ "time": 0.8667, "name": "left-wing05" },
+					{ "time": 0.9, "name": "left-wing06" },
+					{ "time": 0.9333, "name": "left-wing07" },
+					{ "time": 0.9667, "name": "left-wing08" },
+					{ "time": 1, "name": "left-wing01" }
 				]
 				]
 			},
 			},
-			"R_wing": {
+			"right-wing": {
 				"attachment": [
 				"attachment": [
-					{ "time": 0, "name": "R_wing01" },
-					{ "time": 0.0667, "name": "R_wing02" },
-					{ "time": 0.1333, "name": "R_wing03" },
-					{ "time": 0.2, "name": "R_wing04" },
-					{ "time": 0.2667, "name": "R_wing05" },
-					{ "time": 0.3333, "name": "R_wing06" },
-					{ "time": 0.4, "name": "R_wing07" },
-					{ "time": 0.4667, "name": "R_wing08" },
-					{ "time": 0.5333, "name": "R_wing09" },
-					{ "time": 0.6, "name": "R_wing01" },
-					{ "time": 0.7333, "name": "R_wing02" },
-					{ "time": 0.7667, "name": "R_wing02" },
-					{ "time": 0.8, "name": "R_wing03" },
-					{ "time": 0.8333, "name": "R_wing04" },
-					{ "time": 0.8667, "name": "R_wing05" },
-					{ "time": 0.9, "name": "R_wing06" },
-					{ "time": 0.9333, "name": "R_wing07" },
-					{ "time": 0.9667, "name": "R_wing08" },
-					{ "time": 1, "name": "R_wing01" }
+					{ "time": 0, "name": "right-wing01" },
+					{ "time": 0.0667, "name": "right-wing02" },
+					{ "time": 0.1333, "name": "right-wing03" },
+					{ "time": 0.2, "name": "right-wing04" },
+					{ "time": 0.2667, "name": "right-wing05" },
+					{ "time": 0.3333, "name": "right-wing06" },
+					{ "time": 0.4, "name": "right-wing07" },
+					{ "time": 0.4667, "name": "right-wing08" },
+					{ "time": 0.5333, "name": "right-wing09" },
+					{ "time": 0.6, "name": "right-wing01" },
+					{ "time": 0.7333, "name": "right-wing02" },
+					{ "time": 0.7667, "name": "right-wing02" },
+					{ "time": 0.8, "name": "right-wing03" },
+					{ "time": 0.8333, "name": "right-wing04" },
+					{ "time": 0.8667, "name": "right-wing05" },
+					{ "time": 0.9, "name": "right-wing06" },
+					{ "time": 0.9333, "name": "right-wing07" },
+					{ "time": 0.9667, "name": "right-wing08" },
+					{ "time": 1, "name": "right-wing01" }
 				]
 				]
 			}
 			}
 		},
 		},
@@ -307,7 +437,7 @@
 					{ "time": 1, "x": 1, "y": 1 }
 					{ "time": 1, "x": 1, "y": 1 }
 				]
 				]
 			},
 			},
-			"R_rear_thigh": {
+			"right-rear-thigh": {
 				"rotate": [
 				"rotate": [
 					{ "time": 0, "angle": 0, "curve": "stepped" },
 					{ "time": 0, "angle": 0, "curve": "stepped" },
 					{ "time": 0.5, "angle": 0, "curve": "stepped" },
 					{ "time": 0.5, "angle": 0, "curve": "stepped" },
@@ -424,7 +554,7 @@
 					{ "time": 1, "x": 1, "y": 1 }
 					{ "time": 1, "x": 1, "y": 1 }
 				]
 				]
 			},
 			},
-			"R_rear_leg": {
+			"right-rear-leg": {
 				"rotate": [
 				"rotate": [
 					{ "time": 0, "angle": 0 },
 					{ "time": 0, "angle": 0 },
 					{ "time": 0.1667, "angle": -14.22 },
 					{ "time": 0.1667, "angle": -14.22 },
@@ -442,7 +572,7 @@
 					{ "time": 1, "x": 1, "y": 1 }
 					{ "time": 1, "x": 1, "y": 1 }
 				]
 				]
 			},
 			},
-			"R_rear_toe3": {
+			"right-rear-toe3": {
 				"rotate": [
 				"rotate": [
 					{ "time": 0, "angle": 0 },
 					{ "time": 0, "angle": 0 },
 					{ "time": 0.5, "angle": -36.06 },
 					{ "time": 0.5, "angle": -36.06 },
@@ -459,7 +589,7 @@
 					{ "time": 1, "x": 1, "y": 1 }
 					{ "time": 1, "x": 1, "y": 1 }
 				]
 				]
 			},
 			},
-			"R_rear_toe2": {
+			"right-rear-toe2": {
 				"rotate": [
 				"rotate": [
 					{ "time": 0, "angle": 0 },
 					{ "time": 0, "angle": 0 },
 					{ "time": 0.5, "angle": -20.32 },
 					{ "time": 0.5, "angle": -20.32 },
@@ -476,7 +606,7 @@
 					{ "time": 1, "x": 1, "y": 1 }
 					{ "time": 1, "x": 1, "y": 1 }
 				]
 				]
 			},
 			},
-			"R_rear_toe1": {
+			"right-rear-toe1": {
 				"rotate": [
 				"rotate": [
 					{ "time": 0, "angle": 0 },
 					{ "time": 0, "angle": 0 },
 					{ "time": 0.5, "angle": -18.71 },
 					{ "time": 0.5, "angle": -18.71 },
@@ -537,7 +667,7 @@
 					{ "time": 1, "x": 1, "y": 1 }
 					{ "time": 1, "x": 1, "y": 1 }
 				]
 				]
 			},
 			},
-			"L_front_thigh": {
+			"left-front-thigh": {
 				"rotate": [
 				"rotate": [
 					{ "time": 0, "angle": 0 },
 					{ "time": 0, "angle": 0 },
 					{ "time": 0.1667, "angle": -19.19 },
 					{ "time": 0.1667, "angle": -19.19 },
@@ -556,7 +686,7 @@
 					{ "time": 1, "x": 1, "y": 1 }
 					{ "time": 1, "x": 1, "y": 1 }
 				]
 				]
 			},
 			},
-			"R_front_thigh": {
+			"right-front-thigh": {
 				"rotate": [
 				"rotate": [
 					{ "time": 0, "angle": 0 },
 					{ "time": 0, "angle": 0 },
 					{ "time": 0.1667, "angle": -12.96 },
 					{ "time": 0.1667, "angle": -12.96 },
@@ -574,7 +704,7 @@
 					{ "time": 1, "x": 1, "y": 1 }
 					{ "time": 1, "x": 1, "y": 1 }
 				]
 				]
 			},
 			},
-			"L_front_leg": {
+			"left-front-leg": {
 				"rotate": [
 				"rotate": [
 					{ "time": 0, "angle": 0 },
 					{ "time": 0, "angle": 0 },
 					{ "time": 0.1667, "angle": 37.77 },
 					{ "time": 0.1667, "angle": 37.77 },
@@ -592,7 +722,7 @@
 					{ "time": 1, "x": 1, "y": 1 }
 					{ "time": 1, "x": 1, "y": 1 }
 				]
 				]
 			},
 			},
-			"L_front_toe1": {
+			"left-front-toe1": {
 				"rotate": [
 				"rotate": [
 					{ "time": 0, "angle": 0 },
 					{ "time": 0, "angle": 0 },
 					{ "time": 0.1667, "angle": -16.09 },
 					{ "time": 0.1667, "angle": -16.09 },
@@ -610,7 +740,7 @@
 					{ "time": 1, "x": 1, "y": 1 }
 					{ "time": 1, "x": 1, "y": 1 }
 				]
 				]
 			},
 			},
-			"L_front_toe2": {
+			"left-front-toe2": {
 				"rotate": [
 				"rotate": [
 					{ "time": 0, "angle": 0, "curve": "stepped" },
 					{ "time": 0, "angle": 0, "curve": "stepped" },
 					{ "time": 0.5, "angle": 0, "curve": "stepped" },
 					{ "time": 0.5, "angle": 0, "curve": "stepped" },
@@ -627,7 +757,7 @@
 					{ "time": 1, "x": 1, "y": 1 }
 					{ "time": 1, "x": 1, "y": 1 }
 				]
 				]
 			},
 			},
-			"L_front_toe4": {
+			"left-front-toe4": {
 				"rotate": [
 				"rotate": [
 					{ "time": 0, "angle": 0 },
 					{ "time": 0, "angle": 0 },
 					{ "time": 0.5, "angle": 26.52 },
 					{ "time": 0.5, "angle": 26.52 },
@@ -644,7 +774,7 @@
 					{ "time": 1, "x": 1, "y": 1 }
 					{ "time": 1, "x": 1, "y": 1 }
 				]
 				]
 			},
 			},
-			"L_front_toe3": {
+			"left-front-toe3": {
 				"rotate": [
 				"rotate": [
 					{ "time": 0, "angle": 0 },
 					{ "time": 0, "angle": 0 },
 					{ "time": 0.5, "angle": 16.99 },
 					{ "time": 0.5, "angle": 16.99 },
@@ -661,7 +791,7 @@
 					{ "time": 1, "x": 1, "y": 1 }
 					{ "time": 1, "x": 1, "y": 1 }
 				]
 				]
 			},
 			},
-			"R_front_leg": {
+			"right-front-leg": {
 				"rotate": [
 				"rotate": [
 					{ "time": 0, "angle": 0 },
 					{ "time": 0, "angle": 0 },
 					{ "time": 0.1667, "angle": 26.07 },
 					{ "time": 0.1667, "angle": 26.07 },
@@ -679,7 +809,7 @@
 					{ "time": 1, "x": 1, "y": 1 }
 					{ "time": 1, "x": 1, "y": 1 }
 				]
 				]
 			},
 			},
-			"R_front_toe1": {
+			"right-front-toe1": {
 				"rotate": [
 				"rotate": [
 					{ "time": 0, "angle": 0 },
 					{ "time": 0, "angle": 0 },
 					{ "time": 0.1667, "angle": 29.24 },
 					{ "time": 0.1667, "angle": 29.24 },
@@ -697,7 +827,7 @@
 					{ "time": 1, "x": 1, "y": 1 }
 					{ "time": 1, "x": 1, "y": 1 }
 				]
 				]
 			},
 			},
-			"R_front_toe2": {
+			"right-front-toe2": {
 				"rotate": [
 				"rotate": [
 					{ "time": 0, "angle": 0 },
 					{ "time": 0, "angle": 0 },
 					{ "time": 0.1667, "angle": 24.9 },
 					{ "time": 0.1667, "angle": 24.9 },
@@ -715,7 +845,7 @@
 					{ "time": 1, "x": 1, "y": 1 }
 					{ "time": 1, "x": 1, "y": 1 }
 				]
 				]
 			},
 			},
-			"R_front_toe3": {
+			"right-front-toe3": {
 				"rotate": [
 				"rotate": [
 					{ "time": 0, "angle": 0 },
 					{ "time": 0, "angle": 0 },
 					{ "time": 0.1667, "angle": 11.01 },
 					{ "time": 0.1667, "angle": 11.01 },
@@ -733,7 +863,7 @@
 					{ "time": 1, "x": 1, "y": 1 }
 					{ "time": 1, "x": 1, "y": 1 }
 				]
 				]
 			},
 			},
-			"L_rear_leg": {
+			"left-rear-leg": {
 				"rotate": [
 				"rotate": [
 					{ "time": 0, "angle": 0 },
 					{ "time": 0, "angle": 0 },
 					{ "time": 0.3667, "angle": 25.19 },
 					{ "time": 0.3667, "angle": 25.19 },
@@ -747,7 +877,7 @@
 					{ "time": 0, "x": 1, "y": 1 }
 					{ "time": 0, "x": 1, "y": 1 }
 				]
 				]
 			},
 			},
-			"COG": {
+			"center": {
 				"rotate": [
 				"rotate": [
 					{
 					{
 						"time": 0,
 						"time": 0,

BIN
spine-unity/Assets/Examples/Spine/Dragon/dragon.png


+ 1 - 1
spine-unity/Assets/Examples/Spine/Dragon/dragon.png.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
 fileFormatVersion: 2
 guid: 6bc52290ef03f2846ba38d67e2823598
 guid: 6bc52290ef03f2846ba38d67e2823598
-timeCreated: 1487920373
+timeCreated: 1497481082
 licenseType: Free
 licenseType: Free
 TextureImporter:
 TextureImporter:
   fileIDToRecycleName:
   fileIDToRecycleName:

BIN
spine-unity/Assets/Examples/Spine/Dragon/dragon2.png


+ 1 - 1
spine-unity/Assets/Examples/Spine/Dragon/dragon2.png.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
 fileFormatVersion: 2
 guid: 12c126994123f12468cf4c5a2684078a
 guid: 12c126994123f12468cf4c5a2684078a
-timeCreated: 1487920372
+timeCreated: 1497481081
 licenseType: Free
 licenseType: Free
 TextureImporter:
 TextureImporter:
   fileIDToRecycleName:
   fileIDToRecycleName:

+ 1 - 1
spine-unity/Assets/Examples/Spine/Dragon/license.txt

@@ -1,4 +1,4 @@
-Copyright (c) 2013, ODI EntertainmenT
+Copyright (c) 2013, Thiago Brayner - www.thiagobrayner.com
 
 
 The project file and images in this "dragon" project are provided for
 The project file and images in this "dragon" project are provided for
 demonstration purposes only and may not be redistributed for any reason nor
 demonstration purposes only and may not be redistributed for any reason nor

+ 9 - 0
spine-unity/Assets/Examples/Spine/spineboy-pro.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 91aa25fdfcac76c47a07fab9862f8c09
+folderAsset: yes
+timeCreated: 1497484602
+licenseType: Free
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 293 - 0
spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy.atlas.txt

@@ -0,0 +1,293 @@
+
+spineboy.png
+size: 2048,1024
+format: RGBA8888
+filter: Linear,Linear
+repeat: none
+crosshair
+  rotate: false
+  xy: 1862, 497
+  size: 89, 89
+  orig: 89, 89
+  offset: 0, 0
+  index: -1
+dust01
+  rotate: true
+  xy: 748, 372
+  size: 96, 73
+  orig: 96, 73
+  offset: 0, 0
+  index: -1
+dust02
+  rotate: false
+  xy: 934, 431
+  size: 86, 88
+  orig: 86, 88
+  offset: 0, 0
+  index: -1
+dust03
+  rotate: false
+  xy: 1965, 591
+  size: 62, 52
+  orig: 62, 52
+  offset: 0, 0
+  index: -1
+eye-indifferent
+  rotate: false
+  xy: 1870, 649
+  size: 93, 89
+  orig: 93, 89
+  offset: 0, 0
+  index: -1
+eye-surprised
+  rotate: false
+  xy: 823, 380
+  size: 93, 89
+  orig: 93, 89
+  offset: 0, 0
+  index: -1
+front-bracer
+  rotate: true
+  xy: 1225, 521
+  size: 58, 80
+  orig: 58, 80
+  offset: 0, 0
+  index: -1
+front-fist-closed
+  rotate: false
+  xy: 1022, 441
+  size: 75, 82
+  orig: 75, 82
+  offset: 0, 0
+  index: -1
+front-fist-open
+  rotate: true
+  xy: 1953, 439
+  size: 86, 87
+  orig: 86, 87
+  offset: 0, 0
+  index: -1
+front-foot
+  rotate: true
+  xy: 1799, 602
+  size: 126, 69
+  orig: 126, 69
+  offset: 0, 0
+  index: -1
+front-shin
+  rotate: true
+  xy: 278, 2
+  size: 82, 184
+  orig: 82, 184
+  offset: 0, 0
+  index: -1
+front-thigh
+  rotate: true
+  xy: 820, 471
+  size: 48, 112
+  orig: 48, 112
+  offset: 0, 0
+  index: -1
+front-upper-arm
+  rotate: true
+  xy: 1020, 525
+  size: 54, 97
+  orig: 54, 97
+  offset: 0, 0
+  index: -1
+goggles
+  rotate: true
+  xy: 1855, 740
+  size: 261, 166
+  orig: 261, 166
+  offset: 0, 0
+  index: -1
+gun
+  rotate: false
+  xy: 1329, 644
+  size: 210, 203
+  orig: 210, 203
+  offset: 0, 0
+  index: -1
+head
+  rotate: true
+  xy: 1555, 730
+  size: 271, 298
+  orig: 271, 298
+  offset: 0, 0
+  index: -1
+hoverboard-board
+  rotate: false
+  xy: 1061, 849
+  size: 492, 152
+  orig: 492, 152
+  offset: 0, 0
+  index: -1
+hoverboard-thruster
+  rotate: false
+  xy: 710, 29
+  size: 60, 64
+  orig: 60, 64
+  offset: 0, 0
+  index: -1
+hoverglow-small
+  rotate: false
+  xy: 2, 9
+  size: 274, 75
+  orig: 274, 75
+  offset: 0, 0
+  index: -1
+mouth-grind
+  rotate: true
+  xy: 1965, 645
+  size: 93, 59
+  orig: 93, 59
+  offset: 0, 0
+  index: -1
+mouth-oooo
+  rotate: false
+  xy: 1870, 588
+  size: 93, 59
+  orig: 93, 59
+  offset: 0, 0
+  index: -1
+mouth-smile
+  rotate: false
+  xy: 1953, 527
+  size: 93, 59
+  orig: 93, 59
+  offset: 0, 0
+  index: -1
+muzzle-glow
+  rotate: false
+  xy: 820, 521
+  size: 198, 198
+  orig: 198, 198
+  offset: 0, 0
+  index: -1
+muzzle01
+  rotate: false
+  xy: 2, 86
+  size: 474, 275
+  orig: 474, 275
+  offset: 0, 0
+  index: -1
+muzzle02
+  rotate: false
+  xy: 568, 721
+  size: 491, 280
+  orig: 491, 280
+  offset: 0, 0
+  index: -1
+muzzle03
+  rotate: false
+  xy: 2, 363
+  size: 562, 316
+  orig: 562, 316
+  offset: 0, 0
+  index: -1
+muzzle04
+  rotate: false
+  xy: 2, 681
+  size: 564, 320
+  orig: 564, 320
+  offset: 0, 0
+  index: -1
+neck
+  rotate: false
+  xy: 1020, 678
+  size: 36, 41
+  orig: 36, 41
+  offset: 0, 0
+  index: -1
+portal-bg
+  rotate: false
+  xy: 1061, 581
+  size: 266, 266
+  orig: 266, 266
+  offset: 0, 0
+  index: -1
+portal-flare1
+  rotate: false
+  xy: 918, 369
+  size: 111, 60
+  orig: 111, 60
+  offset: 0, 0
+  index: -1
+portal-flare2
+  rotate: true
+  xy: 1799, 486
+  size: 114, 61
+  orig: 114, 61
+  offset: 0, 0
+  index: -1
+portal-flare3
+  rotate: false
+  xy: 478, 34
+  size: 115, 59
+  orig: 115, 59
+  offset: 0, 0
+  index: -1
+portal-shade
+  rotate: false
+  xy: 478, 95
+  size: 266, 266
+  orig: 266, 266
+  offset: 0, 0
+  index: -1
+portal-streaks1
+  rotate: true
+  xy: 1541, 476
+  size: 252, 256
+  orig: 252, 256
+  offset: 0, 0
+  index: -1
+portsl-streaks2
+  rotate: false
+  xy: 568, 470
+  size: 250, 249
+  orig: 250, 249
+  offset: 0, 0
+  index: -1
+rear-bracer
+  rotate: false
+  xy: 1031, 367
+  size: 56, 72
+  orig: 56, 72
+  offset: 0, 0
+  index: -1
+rear-foot
+  rotate: false
+  xy: 595, 33
+  size: 113, 60
+  orig: 113, 60
+  offset: 0, 0
+  index: -1
+rear-shin
+  rotate: true
+  xy: 1329, 567
+  size: 75, 178
+  orig: 75, 178
+  offset: 0, 0
+  index: -1
+rear-thigh
+  rotate: true
+  xy: 1119, 514
+  size: 65, 104
+  orig: 65, 104
+  offset: 0, 0
+  index: -1
+rear-upper-arm
+  rotate: true
+  xy: 1099, 465
+  size: 47, 87
+  orig: 47, 87
+  offset: 0, 0
+  index: -1
+torso
+  rotate: true
+  xy: 566, 370
+  size: 98, 180
+  orig: 98, 180
+  offset: 0, 0
+  index: -1

+ 8 - 0
spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy.atlas.txt.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: baa2a4228a0622e48ade89f9329a21db
+timeCreated: 1497484603
+licenseType: Free
+TextScriptImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 385 - 0
spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy.json


+ 8 - 0
spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy.json.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c4a131ce07ddbbf4fa38e01f472a366f
+timeCreated: 1497484603
+licenseType: Free
+TextScriptImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy.png


+ 68 - 0
spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy.png.meta

@@ -0,0 +1,68 @@
+fileFormatVersion: 2
+guid: 775ade7081c168944b4fb20357ce370a
+timeCreated: 1497484603
+licenseType: Free
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 4
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    textureFormat: -1
+    textureCompression: 0
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 16 - 0
spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy_Atlas.asset

@@ -0,0 +1,16 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: a6b194f808b1af6499c93410e504af42, type: 3}
+  m_Name: spineboy_Atlas
+  m_EditorClassIdentifier: 
+  atlasFile: {fileID: 4900000, guid: baa2a4228a0622e48ade89f9329a21db, type: 3}
+  materials:
+  - {fileID: 2100000, guid: 86873d92b9c6412428e6e2d4f827c88b, type: 2}

+ 9 - 0
spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy_Atlas.asset.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 2fc9866d5b475d74b981f97a77312320
+timeCreated: 1497484603
+licenseType: Free
+NativeFormatImporter:
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 26 - 0
spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy_Material.mat

@@ -0,0 +1,26 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_Name: spineboy_Material
+  m_Shader: {fileID: 4800000, guid: 1e8a610c9e01c3648bac42585e5fc676, type: 3}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 775ade7081c168944b4fb20357ce370a, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats:
+    - _Cutoff: 0.1
+    m_Colors: []

+ 9 - 0
spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy_Material.mat.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 86873d92b9c6412428e6e2d4f827c88b
+timeCreated: 1497484603
+licenseType: Free
+NativeFormatImporter:
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 34 - 0
spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy_SkeletonData.asset

@@ -0,0 +1,34 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f1b3b4b945939a54ea0b23d3396115fb, type: 3}
+  m_Name: spineboy_SkeletonData
+  m_EditorClassIdentifier: 
+  atlasAssets:
+  - {fileID: 11400000, guid: 2fc9866d5b475d74b981f97a77312320, type: 2}
+  scale: 0.01
+  skeletonJSON: {fileID: 4900000, guid: c4a131ce07ddbbf4fa38e01f472a366f, type: 3}
+  fromAnimation:
+  - idle
+  - run
+  - walk
+  - run
+  toAnimation:
+  - idle-turn
+  - run-to-idle
+  - run
+  - walk
+  duration:
+  - 0
+  - 0.05
+  - 0.3
+  - 0.3
+  defaultMix: 0.1
+  controller: {fileID: 0}

+ 9 - 0
spine-unity/Assets/Examples/Spine/spineboy-pro/spineboy_SkeletonData.asset.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 45a15bf53b040de42b2adbc759a40203
+timeCreated: 1497484603
+licenseType: Free
+NativeFormatImporter:
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 0 - 0
spine-unity/Assets/Examples/Spine/Spineboy.meta → spine-unity/Assets/Examples/Spine/spineboy-unity.meta


+ 0 - 0
spine-unity/Assets/Examples/Spine/Spineboy/Equips.meta → spine-unity/Assets/Examples/Spine/spineboy-unity/Equips.meta


+ 0 - 0
spine-unity/Assets/Examples/Spine/Spineboy/Equips/freezegun.png → spine-unity/Assets/Examples/Spine/spineboy-unity/Equips/freezegun.png


+ 0 - 0
spine-unity/Assets/Examples/Spine/Spineboy/Equips/freezegun.png.meta → spine-unity/Assets/Examples/Spine/spineboy-unity/Equips/freezegun.png.meta


+ 0 - 0
spine-unity/Assets/Examples/Spine/Spineboy/Equips/goggles-tacticalvisor.png → spine-unity/Assets/Examples/Spine/spineboy-unity/Equips/goggles-tacticalvisor.png


+ 0 - 0
spine-unity/Assets/Examples/Spine/Spineboy/Equips/goggles-tacticalvisor.png.meta → spine-unity/Assets/Examples/Spine/spineboy-unity/Equips/goggles-tacticalvisor.png.meta


+ 182 - 298
spine-unity/Assets/Examples/Spine/Spineboy/spineboy-unity.json → spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy-unity.json

@@ -1,7 +1,7 @@
 {
 {
 "skeleton": {
 "skeleton": {
-	"hash": "pT8+kphidZDzlY5lbXpU0cNNzmQ",
-	"spine": "3.6.18-beta",
+	"hash": "fdIxd7co0AmzNYI1JtoFSg51K0U",
+	"spine": "3.6.30-beta",
 	"width": 470.71,
 	"width": 470.71,
 	"height": 731.57,
 	"height": 731.57,
 	"images": "C:/Program Files (x86)/Spine/examples/spineboy/images/"
 	"images": "C:/Program Files (x86)/Spine/examples/spineboy/images/"
@@ -789,21 +789,22 @@
 			},
 			},
 			"muzzle": {
 			"muzzle": {
 				"color": [
 				"color": [
-					{ "time": 0, "color": "0000803e", "curve": "stepped" },
-					{ "time": 0.7667, "color": "0000803e", "curve": "stepped" },
-					{ "time": 0.8, "color": "0000803e", "curve": "stepped" },
-					{ "time": 0.8333, "color": "0000803e", "curve": "stepped" },
-					{ "time": 0.8667, "color": "0000803e", "curve": "stepped" },
-					{ "time": 0.9, "color": "0000803e", "curve": "stepped" },
-					{ "time": 0.9333, "color": "0000803e", "curve": "stepped" },
-					{ "time": 0.9667, "color": "0000803e", "curve": "stepped" },
-					{ "time": 1.1, "color": "0000803e", "curve": "stepped" },
-					{ "time": 1.1333, "color": "0000803e", "curve": "stepped" },
-					{ "time": 1.2, "color": "0000803e", "curve": "stepped" },
-					{ "time": 1.2333, "color": "0000803e", "curve": "stepped" },
-					{ "time": 1.2667, "color": "0000803e", "curve": "stepped" },
-					{ "time": 1.3333, "color": "0000803e", "curve": "stepped" },
-					{ "time": 2.5333, "color": "0000803e" }
+					{ "time": 0, "color": "00008000", "curve": "stepped" },
+					{ "time": 0.7667, "color": "fffffffe", "curve": "stepped" },
+					{ "time": 0.8, "color": "ffffff00", "curve": "stepped" },
+					{ "time": 0.8333, "color": "fffffffe", "curve": "stepped" },
+					{ "time": 0.8667, "color": "ffffff00", "curve": "stepped" },
+					{ "time": 0.9, "color": "fffffffe", "curve": "stepped" },
+					{ "time": 0.9333, "color": "ffffff00", "curve": "stepped" },
+					{ "time": 0.9667, "color": "fffffffe", "curve": "stepped" },
+					{ "time": 1, "color": "ffffff00", "curve": "stepped" },
+					{ "time": 1.1, "color": "fffffffe", "curve": "stepped" },
+					{ "time": 1.1333, "color": "ffffff00", "curve": "stepped" },
+					{ "time": 1.2, "color": "fffffffe", "curve": "stepped" },
+					{ "time": 1.2333, "color": "ffffff00", "curve": "stepped" },
+					{ "time": 1.2667, "color": "fffffffe", "curve": "stepped" },
+					{ "time": 1.3333, "color": "ffffff00", "curve": "stepped" },
+					{ "time": 2.5333, "color": "ffffff00" }
 				],
 				],
 				"attachment": [
 				"attachment": [
 					{ "time": 0, "name": null },
 					{ "time": 0, "name": null },
@@ -1976,7 +1977,9 @@
 		"slots": {
 		"slots": {
 			"front_fist": {
 			"front_fist": {
 				"attachment": [
 				"attachment": [
-					{ "time": 0.1, "name": "front_fist_open" }
+					{ "time": 0, "name": "front_fist_open" },
+					{ "time": 0.1, "name": "front_fist_open" },
+					{ "time": 0.2, "name": "front_fist_open" }
 				]
 				]
 			},
 			},
 			"mouth": {
 			"mouth": {
@@ -1989,93 +1992,162 @@
 		"bones": {
 		"bones": {
 			"torso": {
 			"torso": {
 				"rotate": [
 				"rotate": [
-					{ "time": 0, "angle": 56.42 },
-					{ "time": 0.2, "angle": 8.89 }
+					{
+						"time": 0,
+						"angle": -20.26,
+						"curve": [ 0.25, 0, 0.275, 1 ]
+					},
+					{ "time": 0.2, "angle": -5.62 }
+				],
+				"translate": [
+					{
+						"time": 0,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0.25, 0, 0.275, 1 ]
+					},
+					{ "time": 0.2, "x": -6.5, "y": 0 }
 				]
 				]
 			},
 			},
 			"neck": {
 			"neck": {
 				"rotate": [
 				"rotate": [
-					{ "time": 0, "angle": 35.39 },
-					{ "time": 0.1333, "angle": 24.95 }
+					{
+						"time": 0,
+						"angle": -0.49,
+						"curve": [ 0.25, 0, 0.275, 1 ]
+					},
+					{ "time": 0.1333, "angle": 24.95 },
+					{ "time": 0.2, "angle": 0 }
 				]
 				]
 			},
 			},
 			"head": {
 			"head": {
 				"rotate": [
 				"rotate": [
-					{ "time": 0, "angle": 10.22 },
-					{ "time": 0.2, "angle": -41.3 }
+					{
+						"time": 0,
+						"angle": -46.07,
+						"curve": [ 0.352, 0, 0.492, 0.6 ]
+					},
+					{ "time": 0.2, "angle": -5.51 }
 				]
 				]
 			},
 			},
 			"front_upper_arm": {
 			"front_upper_arm": {
 				"rotate": [
 				"rotate": [
 					{
 					{
 						"time": 0,
 						"time": 0,
-						"angle": -310.93,
-						"curve": [ 0.38, 0.53, 0.745, 1 ]
+						"angle": -73.85,
+						"curve": [ 0.25, 0, 0.275, 1 ]
 					},
 					},
-					{ "time": 0.2, "angle": -112.6 }
+					{ "time": 0.2, "angle": -59.85 }
 				],
 				],
 				"translate": [
 				"translate": [
-					{ "time": 0, "x": 7.23, "y": -13.13 }
+					{
+						"time": 0,
+						"x": -9.77,
+						"y": 0.42,
+						"curve": [ 0.25, 0, 0.275, 1 ]
+					},
+					{ "time": 0.2, "x": -7.12, "y": -8.24 }
 				]
 				]
 			},
 			},
 			"front_bracer": {
 			"front_bracer": {
 				"rotate": [
 				"rotate": [
-					{ "time": 0, "angle": 36.99 },
-					{ "time": 0.2, "angle": -28.65 }
+					{
+						"time": 0,
+						"angle": 75.83,
+						"curve": [ 0.25, 0, 0.275, 1 ]
+					},
+					{ "time": 0.2, "angle": 45.47 }
 				]
 				]
 			},
 			},
 			"front_fist": {
 			"front_fist": {
 				"rotate": [
 				"rotate": [
-					{ "time": 0, "angle": 13.59 },
-					{ "time": 0.2, "angle": 7.56 }
+					{
+						"time": 0,
+						"angle": 13.59,
+						"curve": [ 0.25, 0, 0.275, 1 ]
+					},
+					{ "time": 0.2, "angle": -6.85 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 0.2, "x": 1, "y": 1 }
 				]
 				]
 			},
 			},
 			"rear_upper_arm": {
 			"rear_upper_arm": {
 				"rotate": [
 				"rotate": [
 					{
 					{
 						"time": 0,
 						"time": 0,
-						"angle": 271.02,
-						"curve": [ 0.343, 0.36, 0.68, 0.71 ]
+						"angle": 255.07,
+						"curve": [ 0.25, 0, 0.275, 1 ]
 					},
 					},
-					{ "time": 0.2, "angle": -15.84 }
+					{ "time": 0.2, "angle": 62.42 }
 				],
 				],
 				"translate": [
 				"translate": [
-					{ "time": 0.2, "x": -0.1, "y": -0.46 }
+					{
+						"time": 0,
+						"x": 0,
+						"y": 0,
+						"curve": [ 0.25, 0, 0.275, 1 ]
+					},
+					{ "time": 0.2, "x": -1.83, "y": -16.79 }
 				]
 				]
 			},
 			},
 			"rear_bracer": {
 			"rear_bracer": {
 				"rotate": [
 				"rotate": [
-					{ "time": 0, "angle": 0 },
-					{ "time": 0.2, "angle": 40.03 }
+					{
+						"time": 0,
+						"angle": 66.16,
+						"curve": [ 0.25, 0, 0.275, 1 ]
+					},
+					{ "time": 0.2, "angle": -17.16 }
 				]
 				]
 			},
 			},
 			"gun": {
 			"gun": {
 				"rotate": [
 				"rotate": [
-					{ "time": 0, "angle": 14.98 },
-					{ "time": 0.2, "angle": 39.76 }
+					{
+						"time": 0,
+						"angle": 14.98,
+						"curve": [ 0.25, 0, 0.275, 1 ]
+					},
+					{ "time": 0.2, "angle": 0 }
 				]
 				]
 			},
 			},
 			"front_thigh": {
 			"front_thigh": {
 				"rotate": [
 				"rotate": [
 					{
 					{
 						"time": 0,
 						"time": 0,
-						"angle": 90.94,
-						"curve": [ 0.227, 0.27, 0.433, 1 ]
+						"angle": 26.47,
+						"curve": [ 0.25, 0, 0.275, 1 ]
 					},
 					},
-					{ "time": 0.2, "angle": 32.03 }
+					{ "time": 0.2, "angle": 0.65 }
 				],
 				],
 				"translate": [
 				"translate": [
-					{ "time": 0, "x": 7.21, "y": -4 }
+					{
+						"time": 0,
+						"x": 7.21,
+						"y": -4,
+						"curve": [ 0.25, 0, 0.275, 1 ]
+					},
+					{ "time": 0.2, "x": -13.4, "y": 6.7 }
+				],
+				"scale": [
+					{
+						"time": 0,
+						"x": 1,
+						"y": 1,
+						"curve": [ 0.25, 0, 0.275, 1 ]
+					},
+					{ "time": 0.2, "x": 0.897, "y": 1 }
 				]
 				]
 			},
 			},
 			"rear_thigh": {
 			"rear_thigh": {
 				"rotate": [
 				"rotate": [
 					{
 					{
 						"time": 0,
 						"time": 0,
-						"angle": 40.52,
-						"curve": [ 0.296, 0.3, 0.59, 1 ]
+						"angle": 47.22,
+						"curve": [ 0.25, 0, 0.275, 1 ]
 					},
 					},
-					{ "time": 0.2, "angle": 90.77 }
+					{ "time": 0.2, "angle": 30.51 }
 				],
 				],
 				"translate": [
 				"translate": [
 					{ "time": 0, "x": -1.96, "y": -0.32 }
 					{ "time": 0, "x": -1.96, "y": -0.32 }
@@ -2083,33 +2155,66 @@
 			},
 			},
 			"front_shin": {
 			"front_shin": {
 				"rotate": [
 				"rotate": [
-					{ "time": 0, "angle": -96.63 },
-					{ "time": 0.2, "angle": -15.13 }
+					{
+						"time": 0,
+						"angle": -67.69,
+						"curve": [ 0.25, 0, 0.275, 1 ]
+					},
+					{ "time": 0.2, "angle": -19.29 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 0.2, "x": 1, "y": 1 }
 				]
 				]
 			},
 			},
 			"rear_shin": {
 			"rear_shin": {
 				"rotate": [
 				"rotate": [
-					{ "time": 0, "angle": 8 },
-					{ "time": 0.2, "angle": -67.54 }
+					{
+						"time": 0,
+						"angle": -45.94,
+						"curve": [ 0.25, 0, 0.275, 1 ]
+					},
+					{ "time": 0.2, "angle": -23.83 }
 				]
 				]
 			},
 			},
 			"front_foot": {
 			"front_foot": {
 				"rotate": [
 				"rotate": [
-					{ "time": 0, "angle": 5.4 },
-					{ "time": 0.2, "angle": -16.27 }
+					{
+						"time": 0,
+						"angle": 5.4,
+						"curve": [ 0.25, 0, 0.275, 1 ]
+					},
+					{ "time": 0.2, "angle": 5.14 }
+				],
+				"scale": [
+					{
+						"time": 0,
+						"x": 1,
+						"y": 1,
+						"curve": [ 0.25, 0, 0.275, 1 ]
+					},
+					{ "time": 0.2, "x": 0.755, "y": 1.31 }
 				]
 				]
 			},
 			},
 			"rear_foot": {
 			"rear_foot": {
 				"rotate": [
 				"rotate": [
-					{ "time": 0, "angle": 2.67 },
-					{ "time": 0.2, "angle": -10.31 }
+					{
+						"time": 0,
+						"angle": -35.72,
+						"curve": [ 0.25, 0, 0.275, 1 ]
+					},
+					{ "time": 0.2, "angle": -7.34 }
 				]
 				]
 			},
 			},
 			"hip": {
 			"hip": {
 				"translate": [
 				"translate": [
-					{ "time": 0, "x": -75.55, "y": -78.04 },
-					{ "time": 0.1333, "x": -36.48, "y": 12.42 },
-					{ "time": 0.2, "x": -36.48, "y": -3 }
+					{
+						"time": 0,
+						"x": -32.67,
+						"y": 15,
+						"curve": [ 0.25, 0, 0.275, 1 ]
+					},
+					{ "time": 0.2, "x": -6.64, "y": -23.02 }
 				]
 				]
 			}
 			}
 		}
 		}
@@ -3745,28 +3850,6 @@
 			}
 			}
 		}
 		}
 	},
 	},
-	"lastframehidehead": {
-		"slots": {
-			"eye": {
-				"attachment": [
-					{ "time": 0, "name": "eye_indifferent" },
-					{ "time": 2, "name": null }
-				]
-			},
-			"goggles": {
-				"attachment": [
-					{ "time": 0, "name": "goggles" },
-					{ "time": 2, "name": null }
-				]
-			},
-			"head": {
-				"attachment": [
-					{ "time": 0, "name": "head" },
-					{ "time": 2, "name": null }
-				]
-			}
-		}
-	},
 	"pole": {
 	"pole": {
 		"slots": {
 		"slots": {
 			"eye": {
 			"eye": {
@@ -4940,10 +5023,19 @@
 			},
 			},
 			"muzzle": {
 			"muzzle": {
 				"color": [
 				"color": [
-					{ "time": 0.0225, "color": "0000803e", "curve": "stepped" },
-					{ "time": 0.0667, "color": "0000803e", "curve": "stepped" },
-					{ "time": 0.1, "color": "0000803e", "curve": "stepped" },
-					{ "time": 0.1667, "color": "0000803e" }
+					{
+						"time": 0.0225,
+						"color": "ffad76fe",
+						"curve": [ 0.175, 0.43, 0.534, 0.75 ]
+					},
+					{
+						"time": 0.0333,
+						"color": "ffc197fe",
+						"curve": [ 0.286, 0.99, 0.774, 1 ]
+					},
+					{ "time": 0.0667, "color": "fffffffe" },
+					{ "time": 0.1, "color": "ffbc8fee" },
+					{ "time": 0.1667, "color": "ffa18000" }
 				],
 				],
 				"attachment": [
 				"attachment": [
 					{ "time": 0.0333, "name": "muzzle" },
 					{ "time": 0.0333, "name": "muzzle" },
@@ -4982,6 +5074,12 @@
 					},
 					},
 					{ "time": 0.1667, "x": -9.3, "y": -1.41 },
 					{ "time": 0.1667, "x": -9.3, "y": -1.41 },
 					{ "time": 0.2667, "x": 0, "y": 0 }
 					{ "time": 0.2667, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 },
+					{ "time": 0.0243, "x": 1.324, "y": 1 },
+					{ "time": 0.0539, "x": 0.858, "y": 1.085 },
+					{ "time": 0.1333, "x": 1, "y": 1 }
 				]
 				]
 			},
 			},
 			"rear_bracer": {
 			"rear_bracer": {
@@ -5029,220 +5127,6 @@
 			]
 			]
 		}
 		}
 	},
 	},
-	"shoot old": {
-		"slots": {
-			"front_fist": {
-				"attachment": [
-					{ "time": 0.1333, "name": "front_fist_closed" },
-					{ "time": 0.4, "name": "front_fist_open" }
-				]
-			},
-			"mouth": {
-				"attachment": [
-					{ "time": 0.1333, "name": "mouth_grind" }
-				]
-			},
-			"muzzle": {
-				"color": [
-					{ "time": 0.1333, "color": "0000803e", "curve": "stepped" },
-					{ "time": 0.1667, "color": "0000803e", "curve": "stepped" },
-					{ "time": 0.2667, "color": "0000803e" }
-				],
-				"attachment": [
-					{ "time": 0.1333, "name": "muzzle" },
-					{ "time": 0.2667, "name": null }
-				]
-			}
-		},
-		"bones": {
-			"gunTip": {
-				"translate": [
-					{ "time": 0.1333, "x": 0, "y": 0 },
-					{ "time": 0.2, "x": 20.93, "y": 1.58 }
-				],
-				"scale": [
-					{ "time": 0.1333, "x": 1, "y": 1 },
-					{ "time": 0.2, "x": 1.247, "y": 1.517 }
-				]
-			},
-			"gun": {
-				"rotate": [
-					{ "time": 0, "angle": 1.91 }
-				],
-				"translate": [
-					{
-						"time": 0,
-						"x": 7.95,
-						"y": 5.85,
-						"curve": [ 0, 0.3, 0.679, 1 ]
-					},
-					{ "time": 0.3, "x": -9.3, "y": -1.41 },
-					{ "time": 0.4, "x": 0, "y": 0 }
-				]
-			},
-			"rear_bracer": {
-				"rotate": [
-					{ "time": 0, "angle": -30.47 }
-				],
-				"translate": [
-					{
-						"time": 0,
-						"x": 0,
-						"y": 0,
-						"curve": [ 0, 0.3, 0.679, 1 ]
-					},
-					{ "time": 0.3, "x": -6, "y": -3.72 },
-					{ "time": 0.4, "x": 0, "y": 0 }
-				]
-			},
-			"rear_upper_arm": {
-				"rotate": [
-					{ "time": 0, "angle": 62.31 }
-				],
-				"translate": [
-					{
-						"time": 0,
-						"x": 0,
-						"y": 0,
-						"curve": [ 0, 0.3, 0.679, 1 ]
-					},
-					{ "time": 0.3, "x": 2.81, "y": 11.42 },
-					{ "time": 0.4, "x": 0, "y": 0 }
-				]
-			},
-			"aiming gun target": {
-				"translate": [
-					{ "time": 0, "x": -0.07, "y": -10.4 }
-				]
-			}
-		},
-		"ik": {
-			"aiming constraint": [
-				{ "time": 0 }
-			],
-			"aiming gun constraint": [
-				{ "time": 0 }
-			]
-		}
-	},
-	"test": {
-		"slots": {
-			"front_foot": {
-				"color": [
-					{ "time": 0.6667, "color": "0000803e", "curve": "stepped" },
-					{ "time": 1.3333, "color": "0000803e" }
-				]
-			},
-			"gun": {
-				"color": [
-					{ "time": 0, "color": "0000803e", "curve": "stepped" },
-					{ "time": 0.6667, "color": "0000803e" },
-					{ "time": 1.3333, "color": "c9c8483e" }
-				]
-			},
-			"rear_foot": {
-				"color": [
-					{ "time": 0.6667, "color": "0000803e", "curve": "stepped" },
-					{ "time": 1.3333, "color": "0000803e" }
-				]
-			}
-		},
-		"bones": {
-			"head": {
-				"rotate": [
-					{ "time": 0, "angle": 0 },
-					{ "time": 0.3333, "angle": -20.72 },
-					{ "time": 0.6667, "angle": -32.42 },
-					{ "time": 1, "angle": -5.3 },
-					{ "time": 1.3333, "angle": 24.96 },
-					{ "time": 1.6667, "angle": 15.62 },
-					{ "time": 2, "angle": 0 }
-				],
-				"translate": [
-					{
-						"time": 0,
-						"x": 0,
-						"y": 0,
-						"curve": [ 0.173, 0.38, 0.575, 0.74 ]
-					},
-					{
-						"time": 0.1667,
-						"x": 144.2,
-						"y": -77.59,
-						"curve": [ 0.372, 0.61, 0.766, 1 ]
-					},
-					{
-						"time": 0.3333,
-						"x": 217.61,
-						"y": -192.64,
-						"curve": [ 0.282, 0, 0.625, 0.32 ]
-					},
-					{
-						"time": 0.5,
-						"x": 181.21,
-						"y": -365.66,
-						"curve": [ 0.314, 0.21, 0.655, 0.54 ]
-					},
-					{
-						"time": 0.6667,
-						"x": 20.1,
-						"y": -500.41,
-						"curve": [ 0.147, 0.28, 0.75, 1 ]
-					},
-					{ "time": 0.8333, "x": -194.24, "y": -341.85 },
-					{ "time": 1, "x": -307.93, "y": -114 },
-					{
-						"time": 1.1667,
-						"x": -330.39,
-						"y": 121.42,
-						"curve": [ 0.25, 0, 0.764, 0.49 ]
-					},
-					{
-						"time": 1.3333,
-						"x": -240.42,
-						"y": 335.66,
-						"curve": [ 0.23, 0.37, 0.58, 0.73 ]
-					},
-					{
-						"time": 1.5,
-						"x": -56.12,
-						"y": 288.06,
-						"curve": [ 0.296, 0.61, 0.642, 1 ]
-					},
-					{
-						"time": 1.6667,
-						"x": 87.63,
-						"y": 191.34,
-						"curve": [ 0.239, 0, 0.627, 0.39 ]
-					},
-					{
-						"time": 1.8333,
-						"x": 60.62,
-						"y": 95.15,
-						"curve": [ 0.41, 0.26, 0.804, 0.62 ]
-					},
-					{ "time": 2, "x": 0, "y": 0 }
-				]
-			}
-		},
-		"drawOrder": [
-			{
-				"time": 0.6667,
-				"offsets": [
-					{ "slot": "head", "offset": -9 },
-					{ "slot": "eye", "offset": -9 },
-					{ "slot": "mouth", "offset": -13 },
-					{ "slot": "goggles", "offset": -13 }
-				]
-			},
-			{ "time": 1.3333 }
-		],
-		"events": [
-			{ "time": 0, "name": "headPop", "int": 0, "float": 0, "string": "pop.wav" },
-			{ "time": 1, "name": "headBehind", "int": 7, "float": 8, "string": "animate" },
-			{ "time": 2, "name": "headAttach", "int": 0, "float": 0, "string": "attach.wav" }
-		]
-	},
 	"walk": {
 	"walk": {
 		"slots": {
 		"slots": {
 			"front_fist": {
 			"front_fist": {

+ 0 - 0
spine-unity/Assets/Examples/Spine/Spineboy/spineboy-unity.json.meta → spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy-unity.json.meta


+ 16 - 4
spine-unity/Assets/Examples/Spine/Spineboy/spineboy-unity_SkeletonData.asset → spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy-unity_SkeletonData.asset

@@ -15,8 +15,20 @@ MonoBehaviour:
   - {fileID: 11400000, guid: b4b8457d6cb8fec49a40be5b71d79e51, type: 2}
   - {fileID: 11400000, guid: b4b8457d6cb8fec49a40be5b71d79e51, type: 2}
   scale: 0.01
   scale: 0.01
   skeletonJSON: {fileID: 4900000, guid: e3b64d7eaf0de4e45a00b7065166554d, type: 3}
   skeletonJSON: {fileID: 4900000, guid: e3b64d7eaf0de4e45a00b7065166554d, type: 3}
-  fromAnimation: []
-  toAnimation: []
-  duration: []
-  defaultMix: 0.15
+  fromAnimation:
+  - run
+  - pole
+  - idle
+  - hit
+  toAnimation:
+  - pole
+  - run
+  - hit
+  - idle
+  duration:
+  - 0
+  - 0
+  - 0.05
+  - 0.05
+  defaultMix: 0.1
   controller: {fileID: 0}
   controller: {fileID: 0}

+ 0 - 0
spine-unity/Assets/Examples/Spine/Spineboy/spineboy-unity_SkeletonData.asset.meta → spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy-unity_SkeletonData.asset.meta


+ 0 - 0
spine-unity/Assets/Examples/Spine/Spineboy/spineboy.atlas.txt → spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy.atlas.txt


+ 0 - 0
spine-unity/Assets/Examples/Spine/Spineboy/spineboy.atlas.txt.meta → spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy.atlas.txt.meta


+ 0 - 0
spine-unity/Assets/Examples/Spine/Spineboy/spineboy.png → spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy.png


+ 0 - 0
spine-unity/Assets/Examples/Spine/Spineboy/spineboy.png.meta → spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy.png.meta


+ 0 - 0
spine-unity/Assets/Examples/Spine/Spineboy/spineboy_Atlas.asset → spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy_Atlas.asset


+ 0 - 0
spine-unity/Assets/Examples/Spine/Spineboy/spineboy_Atlas.asset.meta → spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy_Atlas.asset.meta


+ 33 - 0
spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy_Material Fill.mat

@@ -0,0 +1,33 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_Name: spineboy_Material Fill
+  m_Shader: {fileID: 4800000, guid: 45495790b394f894a967dbf44489b57b, type: 3}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 5
+  m_EnableInstancingVariants: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 49bb65eefe08e424bbf7a38bc98ec638, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats:
+    - PixelSnap: 0
+    - _CloakPhase: 0
+    - _Cutoff: 0.1
+    - _FillPhase: 0
+    - _RefractionStrength: 0.01
+    - _node_3476: 0
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _FillColor: {r: 1, g: 1, b: 1, a: 1}

+ 8 - 0
spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy_Material Fill.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 128e02fa6a4f5964fa898757a425b354
+timeCreated: 1489559535
+licenseType: Free
+NativeFormatImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 2 - 0
spine-unity/Assets/Examples/Spine/Spineboy/spineboy_Material.mat → spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy_Material.mat

@@ -25,7 +25,9 @@ Material:
     - PixelSnap: 0
     - PixelSnap: 0
     - _CloakPhase: 0
     - _CloakPhase: 0
     - _Cutoff: 0.1
     - _Cutoff: 0.1
+    - _FillPhase: 0
     - _RefractionStrength: 0.01
     - _RefractionStrength: 0.01
     - _node_3476: 0
     - _node_3476: 0
     m_Colors:
     m_Colors:
     - _Color: {r: 1, g: 1, b: 1, a: 1}
     - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _FillColor: {r: 1, g: 1, b: 1, a: 1}

+ 0 - 0
spine-unity/Assets/Examples/Spine/Spineboy/spineboy_Material.mat.meta → spine-unity/Assets/Examples/Spine/spineboy-unity/spineboy_Material.mat.meta


Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä