Переглянути джерело

[unity] Update Basic Platformer example.

pharan 7 роки тому
батько
коміт
99166771e5
34 змінених файлів з 815 додано та 103 видалено
  1. 36 17
      spine-unity/Assets/Spine Examples/Getting Started/5 Basic Platformer.unity
  2. 97 83
      spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/BasicPlatformerController.cs
  3. 7 3
      spine-unity/Assets/Spine Examples/Scripts/HandleEventWithAudioExample.cs
  4. 9 0
      spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets.meta
  5. 15 0
      spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/attack.asset
  6. 9 0
      spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/attack.asset.meta
  7. 15 0
      spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/crouch.asset
  8. 9 0
      spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/crouch.asset.meta
  9. 15 0
      spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/fall.asset
  10. 9 0
      spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/fall.asset.meta
  11. 15 0
      spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/head-turn.asset
  12. 9 0
      spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/head-turn.asset.meta
  13. 15 0
      spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/idle.asset
  14. 9 0
      spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/idle.asset.meta
  15. 15 0
      spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/jump.asset
  16. 9 0
      spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/jump.asset.meta
  17. 15 0
      spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/run-from fall.asset
  18. 9 0
      spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/run-from fall.asset.meta
  19. 15 0
      spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/run.asset
  20. 9 0
      spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/run.asset.meta
  21. 15 0
      spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/walk.asset
  22. 9 0
      spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/walk.asset.meta
  23. 146 0
      spine-unity/Assets/Spine Examples/Spine/Hero/hero-pro.atlas.txt
  24. 8 0
      spine-unity/Assets/Spine Examples/Spine/Hero/hero-pro.atlas.txt.meta
  25. 116 0
      spine-unity/Assets/Spine Examples/Spine/Hero/hero-pro.json
  26. 8 0
      spine-unity/Assets/Spine Examples/Spine/Hero/hero-pro.json.meta
  27. BIN
      spine-unity/Assets/Spine Examples/Spine/Hero/hero-pro.png
  28. 68 0
      spine-unity/Assets/Spine Examples/Spine/Hero/hero-pro.png.meta
  29. 16 0
      spine-unity/Assets/Spine Examples/Spine/Hero/hero-pro_Atlas.asset
  30. 9 0
      spine-unity/Assets/Spine Examples/Spine/Hero/hero-pro_Atlas.asset.meta
  31. 27 0
      spine-unity/Assets/Spine Examples/Spine/Hero/hero-pro_Material.mat
  32. 9 0
      spine-unity/Assets/Spine Examples/Spine/Hero/hero-pro_Material.mat.meta
  33. 34 0
      spine-unity/Assets/Spine Examples/Spine/Hero/hero-pro_SkeletonData.asset
  34. 9 0
      spine-unity/Assets/Spine Examples/Spine/Hero/hero-pro_SkeletonData.asset.meta

+ 36 - 17
spine-unity/Assets/Spine Examples/Getting Started/5 Basic Platformer.unity

@@ -670,7 +670,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: b238dfcde8209044b97d23f62bcaadf6, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  boneName: R_Ground
+  boneName: right-ground
   parentReference: {fileID: 0}
   mode: 0
   position: 1
@@ -685,7 +685,7 @@ Transform:
   m_PrefabInternal: {fileID: 0}
   m_GameObject: {fileID: 380101352}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 0.34059998, y: 0.002599962, z: 0}
+  m_LocalPosition: {x: 0.28119996, y: 0.002599962, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
   m_Father: {fileID: 985424158}
@@ -1389,7 +1389,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d247ba06193faa74d9335f5481b2b56c, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  skeletonDataAsset: {fileID: 11400000, guid: a5967d74cd1f3c741ba7758da7511bcf, type: 2}
+  skeletonDataAsset: {fileID: 11400000, guid: 2f899e95232e6144786de8fb99678a8d, type: 2}
   initialSkinName: default
   initialFlipX: 0
   initialFlipY: 0
@@ -1421,7 +1421,7 @@ MeshRenderer:
   m_LightProbeUsage: 0
   m_ReflectionProbeUsage: 1
   m_Materials:
-  - {fileID: 2100000, guid: b04b8c6e4c57e78449f243c27617a2cd, type: 2}
+  - {fileID: 2100000, guid: 9aa2023c2c91b254f9cb0a4fba19af00, type: 2}
   m_StaticBatchInfo:
     firstSubMesh: 0
     subMeshCount: 0
@@ -1929,7 +1929,7 @@ Transform:
   m_PrefabInternal: {fileID: 0}
   m_GameObject: {fileID: 1018673310}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: -0.3844, y: 0.002599962, z: 0}
+  m_LocalPosition: {x: -0.3129, y: 0.002599962, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
   m_Father: {fileID: 985424158}
@@ -1967,7 +1967,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: b238dfcde8209044b97d23f62bcaadf6, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  boneName: L_Ground
+  boneName: left-ground
   parentReference: {fileID: 0}
   mode: 0
   position: 1
@@ -5535,6 +5535,7 @@ GameObject:
   - component: {fileID: 1204355831}
   - component: {fileID: 1204355832}
   - component: {fileID: 1204355833}
+  - component: {fileID: 1204355834}
   m_Layer: 9
   m_Name: Player
   m_TagString: Untagged
@@ -5592,22 +5593,40 @@ MonoBehaviour:
   runSpeed: 7
   gravityScale: 6.6
   jumpSpeed: 25
-  jumpDuration: 0.5
-  jumpInterruptFactor: 100
+  minimumJumpDuration: 0.5
+  jumpInterruptFactor: 0.5
   forceCrouchVelocity: 30
   forceCrouchDuration: 0.4
   skeletonAnimation: {fileID: 658011011}
-  walkName: Walk
-  runName: Run
-  idleName: Idle
-  jumpName: Jump
-  fallName: Fall
-  crouchName: Crouch
+  walk: {fileID: 11400000, guid: 096b05b71bb32cb409c1c8fd233b7ac3, type: 2}
+  run: {fileID: 11400000, guid: cc83238c61de380499565292bef7ada4, type: 2}
+  idle: {fileID: 11400000, guid: 8e32f0310bb5c02488c5c002dd41e7cb, type: 2}
+  jump: {fileID: 11400000, guid: 9fc9ad17b39175242a17dedc100251e5, type: 2}
+  fall: {fileID: 11400000, guid: 29c1381a00cfb2c4d996f2a02fcc4506, type: 2}
+  crouch: {fileID: 11400000, guid: 25961ff211f6f3947be85f8aab3f2630, type: 2}
+  runFromFall: {fileID: 11400000, guid: fcca5e996ae24ba43baaaadef1fb6ad9, type: 2}
   jumpAudioSource: {fileID: 1845666709}
   hardfallAudioSource: {fileID: 443343505}
-  footstepAudioSource: {fileID: 666622921}
   landParticles: {fileID: 1189703950}
-  footstepEventName: Footstep
+  footstepHandler: {fileID: 1204355834}
+--- !u!114 &1204355834
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_GameObject: {fileID: 1204355830}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 1d55a3bd6ac81af44b2f9a4447f2ae72, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  skeletonAnimation: {fileID: 658011011}
+  eventName: footstep
+  audioSource: {fileID: 666622921}
+  audioClip: {fileID: 8300000, guid: e885484e1bc99fb47a0ac3f6bfa586b1, type: 3}
+  basePitch: 1
+  randomPitchOffset: 0.2
+  logDebugMessage: 0
 --- !u!1 &1217440894
 GameObject:
   m_ObjectHideFlags: 0
@@ -6372,7 +6391,7 @@ GameObject:
   m_Component:
   - component: {fileID: 1621947181}
   m_Layer: 0
-  m_Name: Graphics
+  m_Name: Visuals
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0

+ 97 - 83
spine-unity/Assets/Spine Examples/Scripts/Getting Started Scripts/BasicPlatformerController.cs

@@ -28,8 +28,6 @@
  * POSSIBILITY OF SUCH DAMAGE.
  *****************************************************************************/
 
-// Contributed by: Mitch Thompson
-
 using UnityEngine;
 using Spine.Unity;
 
@@ -49,99 +47,98 @@ namespace Spine.Unity.Examples {
 
 		[Header("Jumping")]
 		public float jumpSpeed = 25;
-		public float jumpDuration = 0.5f;
-		public float jumpInterruptFactor = 100;
+		public float minimumJumpDuration = 0.5f;
+		public float jumpInterruptFactor = 0.5f;
 		public float forceCrouchVelocity = 25;
 		public float forceCrouchDuration = 0.5f;
 
-		[Header("Graphics")]
+		[Header("Visuals")]
 		public SkeletonAnimation skeletonAnimation;
 
 		[Header("Animation")]
-		[SpineAnimation(dataField: "skeletonAnimation")]
-		public string walkName = "Walk";
-		[SpineAnimation(dataField: "skeletonAnimation")]
-		public string runName = "Run";
-		[SpineAnimation(dataField: "skeletonAnimation")]
-		public string idleName = "Idle";
-		[SpineAnimation(dataField: "skeletonAnimation")]
-		public string jumpName = "Jump";
-		[SpineAnimation(dataField: "skeletonAnimation")]
-		public string fallName = "Fall";
-		[SpineAnimation(dataField: "skeletonAnimation")]
-		public string crouchName = "Crouch";
+		public AnimationReferenceAsset walk;
+		public AnimationReferenceAsset run;
+		public AnimationReferenceAsset idle;
+		public AnimationReferenceAsset jump;
+		public AnimationReferenceAsset fall;
+		public AnimationReferenceAsset crouch;
+		public AnimationReferenceAsset runFromFall;
 
 		[Header("Effects")]
 		public AudioSource jumpAudioSource;
 		public AudioSource hardfallAudioSource;
-		public AudioSource footstepAudioSource;
 		public ParticleSystem landParticles;
-		[SpineEvent]
-		public string footstepEventName = "Footstep";
+		public HandleEventWithAudioExample footstepHandler;
+
 		CharacterController controller;
+		Vector2 input = default(Vector2);
 		Vector3 velocity = default(Vector3);
-		float jumpEndTime = 0;
-		bool jumpInterrupt = false;
+		float minimumJumpEndTime = 0;
 		float forceCrouchEndTime;
-		Vector2 input;
 		bool wasGrounded = false;
 
+		AnimationReferenceAsset targetAnimation;
+		AnimationReferenceAsset previousTargetAnimation;
+
 		void Awake () {
 			controller = GetComponent<CharacterController>();
 		}
 
-		void Start () {
-			skeletonAnimation.AnimationState.Event += HandleEvent;
-		}
-
-		void HandleEvent (Spine.TrackEntry trackEntry, Spine.Event e) {
-			if (e.Data.Name == footstepEventName) {
-				footstepAudioSource.Stop();
-				footstepAudioSource.pitch = GetRandomPitch(0.2f);
-				footstepAudioSource.Play();
-			}
-		}
-
-		static float GetRandomPitch (float maxOffset) {
-			return 1f + Random.Range(-maxOffset, maxOffset);
-		}
-
 		void Update () {
+			float dt = Time.deltaTime;
+			bool isGrounded = controller.isGrounded;
+			bool landed = !wasGrounded && isGrounded;
+
+			// Dummy input.
 			input.x = Input.GetAxis(XAxis);
 			input.y = Input.GetAxis(YAxis);
-			bool crouching = (controller.isGrounded && input.y < -0.5f) || (forceCrouchEndTime > Time.time);
-			velocity.x = 0;
-			float dt = Time.deltaTime;
+			bool inputJumpStop = Input.GetButtonUp(JumpButton);
+			bool inputJumpStart = Input.GetButtonDown(JumpButton);			
+			bool doCrouch = (isGrounded && input.y < -0.5f) || (forceCrouchEndTime > Time.time);
+			bool doJumpInterrupt = false;
+			bool doJump = false;
+			bool hardLand = false;
+
+			if (landed) {
+				if (-velocity.y > forceCrouchVelocity) {
+					hardLand = true;
+					doCrouch = true;
+					forceCrouchEndTime = Time.time + forceCrouchDuration;
+				}
+			}
 
-			if (!crouching) { 
-				if (Input.GetButtonDown(JumpButton) && controller.isGrounded) {					
-					jumpAudioSource.Stop();
-					jumpAudioSource.Play();
-					velocity.y = jumpSpeed;
-					jumpEndTime = Time.time + jumpDuration;
+			if (!doCrouch) {
+				if (isGrounded) {
+					if (inputJumpStart) {
+						doJump = true;
+					}
 				} else {
-					jumpInterrupt |= Time.time < jumpEndTime && Input.GetButtonUp(JumpButton);
+					doJumpInterrupt = inputJumpStop && Time.time < minimumJumpEndTime;
 				}
+			}
+
+			// Dummy physics and controller using UnityEngine.CharacterController.
+			Vector3 gravityDeltaVelocity = Physics.gravity * gravityScale * dt;
+			
 
+			if (doJump) {
+				velocity.y = jumpSpeed;
+				minimumJumpEndTime = Time.time + minimumJumpDuration;
+			} else if (doJumpInterrupt) {
+				if (velocity.y > 0)
+					velocity.y *= jumpInterruptFactor;
+			}
+
+			velocity.x = 0;
+			if (!doCrouch) {
 				if (input.x != 0) {
 					velocity.x = Mathf.Abs(input.x) > 0.6f ? runSpeed : walkSpeed;
 					velocity.x *= Mathf.Sign(input.x);
 				}
-
-				if (jumpInterrupt) {
-					if (velocity.y > 0) {
-						velocity.y = Mathf.MoveTowards(velocity.y, 0, dt * jumpInterruptFactor);
-					} else { 
-						jumpInterrupt = false;
-					}
-				}
 			}
-
-			var gravityDeltaVelocity = Physics.gravity * gravityScale * dt;
-
-			if (controller.isGrounded) {
-				jumpInterrupt = false;
-			} else {
+			
+			
+			if (!isGrounded) {
 				if (wasGrounded) {
 					if (velocity.y < 0)
 						velocity.y = 0;
@@ -149,38 +146,55 @@ namespace Spine.Unity.Examples {
 					velocity += gravityDeltaVelocity;
 				}
 			}
-
-			wasGrounded = controller.isGrounded;
-
 			controller.Move(velocity * dt);
 
-			if (!wasGrounded && controller.isGrounded) {
-				if (-velocity.y > forceCrouchVelocity) {
-					forceCrouchEndTime = Time.time + forceCrouchDuration;
-					hardfallAudioSource.Play();
+			// Animation
+			if (isGrounded) {
+				if (doCrouch) {
+					targetAnimation = crouch;
 				} else {
-					footstepAudioSource.Play();
+					if (input.x == 0)
+						targetAnimation = idle;
+					else
+						targetAnimation = Mathf.Abs(input.x) > 0.6f ? run : walk;
 				}
-					
-				landParticles.Emit((int)(velocity.y / -9f) + 2);
+			} else {
+				targetAnimation = velocity.y > 0 ? jump : fall;
 			}
 
-			if (controller.isGrounded) {
-				if (crouching) {
-					skeletonAnimation.AnimationName = crouchName;
+
+			if (previousTargetAnimation != targetAnimation) {
+				if (targetAnimation == run && previousTargetAnimation == fall) {
+					skeletonAnimation.AnimationState.SetAnimation(0, runFromFall, false);
+					skeletonAnimation.AnimationState.AddAnimation(0, run, true, 0f);
 				} else {
-					if (input.x == 0)
-						skeletonAnimation.AnimationName = idleName;
-					else
-						skeletonAnimation.AnimationName = Mathf.Abs(input.x) > 0.6f ? runName : walkName;
+					skeletonAnimation.AnimationState.SetAnimation(0, targetAnimation, true);
 				}
-			} else {
-				skeletonAnimation.AnimationName = velocity.y > 0 ? jumpName : fallName;
 			}
+			previousTargetAnimation = targetAnimation;
 
 			if (input.x != 0)
 				skeletonAnimation.Skeleton.FlipX = input.x < 0;
-			
+
+
+			// Effects
+			if (doJump) {
+				jumpAudioSource.Stop();
+				jumpAudioSource.Play();
+			}
+
+			if (landed) {
+				if (hardLand) {
+					hardfallAudioSource.Play();
+				} else {
+					footstepHandler.Play();
+				}
+
+				landParticles.Emit((int)(velocity.y / -9f) + 2);
+			}
+
+			wasGrounded = isGrounded;
 		}
+
 	}
 }

+ 7 - 3
spine-unity/Assets/Spine Examples/Scripts/HandleEventWithAudioExample.cs

@@ -70,11 +70,15 @@ namespace Spine.Unity.Examples {
 			//bool eventMatch = string.Equals(e.Data.Name, eventName, System.StringComparison.Ordinal); // Testing recommendation: String compare.
 			bool eventMatch = (eventData == e.Data); // Performance recommendation: Match cached reference instead of string.
 			if (eventMatch) {
-				audioSource.pitch = basePitch + Random.Range(-randomPitchOffset, randomPitchOffset);
-				audioSource.clip = audioClip;
-				audioSource.Play();
+				Play();
 			}
 		}
+
+		public void Play () {
+			audioSource.pitch = basePitch + Random.Range(-randomPitchOffset, randomPitchOffset);
+			audioSource.clip = audioClip;
+			audioSource.Play();
+		}
 	}
 
 }

+ 9 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 4d8ca989b59d9c74f9b9d98e63993b0a
+folderAsset: yes
+timeCreated: 1524005971
+licenseType: Free
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 15 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/attack.asset

@@ -0,0 +1,15 @@
+%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: 6e3e95a05e4c9774397eeeb7bdee8ccb, type: 3}
+  m_Name: attack
+  m_EditorClassIdentifier: 
+  skeletonDataAsset: {fileID: 11400000, guid: 2f899e95232e6144786de8fb99678a8d, type: 2}
+  animationName: attack

+ 9 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/attack.asset.meta

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

+ 15 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/crouch.asset

@@ -0,0 +1,15 @@
+%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: 6e3e95a05e4c9774397eeeb7bdee8ccb, type: 3}
+  m_Name: crouch
+  m_EditorClassIdentifier: 
+  skeletonDataAsset: {fileID: 11400000, guid: 2f899e95232e6144786de8fb99678a8d, type: 2}
+  animationName: crouch

+ 9 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/crouch.asset.meta

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

+ 15 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/fall.asset

@@ -0,0 +1,15 @@
+%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: 6e3e95a05e4c9774397eeeb7bdee8ccb, type: 3}
+  m_Name: fall
+  m_EditorClassIdentifier: 
+  skeletonDataAsset: {fileID: 11400000, guid: 2f899e95232e6144786de8fb99678a8d, type: 2}
+  animationName: fall

+ 9 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/fall.asset.meta

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

+ 15 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/head-turn.asset

@@ -0,0 +1,15 @@
+%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: 6e3e95a05e4c9774397eeeb7bdee8ccb, type: 3}
+  m_Name: head-turn
+  m_EditorClassIdentifier: 
+  skeletonDataAsset: {fileID: 11400000, guid: 2f899e95232e6144786de8fb99678a8d, type: 2}
+  animationName: head-turn

+ 9 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/head-turn.asset.meta

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

+ 15 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/idle.asset

@@ -0,0 +1,15 @@
+%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: 6e3e95a05e4c9774397eeeb7bdee8ccb, type: 3}
+  m_Name: idle
+  m_EditorClassIdentifier: 
+  skeletonDataAsset: {fileID: 11400000, guid: 2f899e95232e6144786de8fb99678a8d, type: 2}
+  animationName: idle

+ 9 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/idle.asset.meta

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

+ 15 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/jump.asset

@@ -0,0 +1,15 @@
+%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: 6e3e95a05e4c9774397eeeb7bdee8ccb, type: 3}
+  m_Name: jump
+  m_EditorClassIdentifier: 
+  skeletonDataAsset: {fileID: 11400000, guid: 2f899e95232e6144786de8fb99678a8d, type: 2}
+  animationName: jump

+ 9 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/jump.asset.meta

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

+ 15 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/run-from fall.asset

@@ -0,0 +1,15 @@
+%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: 6e3e95a05e4c9774397eeeb7bdee8ccb, type: 3}
+  m_Name: run-from fall
+  m_EditorClassIdentifier: 
+  skeletonDataAsset: {fileID: 11400000, guid: 2f899e95232e6144786de8fb99678a8d, type: 2}
+  animationName: run-from fall

+ 9 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/run-from fall.asset.meta

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

+ 15 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/run.asset

@@ -0,0 +1,15 @@
+%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: 6e3e95a05e4c9774397eeeb7bdee8ccb, type: 3}
+  m_Name: run
+  m_EditorClassIdentifier: 
+  skeletonDataAsset: {fileID: 11400000, guid: 2f899e95232e6144786de8fb99678a8d, type: 2}
+  animationName: run

+ 9 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/run.asset.meta

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

+ 15 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/walk.asset

@@ -0,0 +1,15 @@
+%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: 6e3e95a05e4c9774397eeeb7bdee8ccb, type: 3}
+  m_Name: walk
+  m_EditorClassIdentifier: 
+  skeletonDataAsset: {fileID: 11400000, guid: 2f899e95232e6144786de8fb99678a8d, type: 2}
+  animationName: walk

+ 9 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/ReferenceAssets/walk.asset.meta

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

+ 146 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/hero-pro.atlas.txt

@@ -0,0 +1,146 @@
+
+hero-pro.png
+size: 1024,256
+format: RGBA8888
+filter: Linear,Linear
+repeat: none
+body
+  rotate: false
+  xy: 324, 81
+  size: 97, 95
+  orig: 97, 95
+  offset: 0, 0
+  index: -1
+cape
+  rotate: false
+  xy: 176, 88
+  size: 146, 159
+  orig: 146, 159
+  offset: 0, 0
+  index: -1
+eyes
+  rotate: false
+  xy: 604, 216
+  size: 82, 31
+  orig: 82, 31
+  offset: 0, 0
+  index: -1
+fingers
+  rotate: false
+  xy: 877, 214
+  size: 31, 33
+  orig: 31, 33
+  offset: 0, 0
+  index: -1
+foot1
+  rotate: false
+  xy: 743, 205
+  size: 50, 42
+  orig: 50, 42
+  offset: 0, 0
+  index: -1
+foot2
+  rotate: false
+  xy: 688, 209
+  size: 53, 38
+  orig: 53, 38
+  offset: 0, 0
+  index: -1
+forearm1
+  rotate: false
+  xy: 795, 198
+  size: 41, 49
+  orig: 41, 49
+  offset: 0, 0
+  index: -1
+forearm2
+  rotate: false
+  xy: 910, 215
+  size: 31, 32
+  orig: 31, 32
+  offset: 0, 0
+  index: -1
+hand1
+  rotate: false
+  xy: 838, 199
+  size: 37, 48
+  orig: 37, 48
+  offset: 0, 0
+  index: -1
+hand2
+  rotate: false
+  xy: 286, 49
+  size: 31, 37
+  orig: 31, 37
+  offset: 0, 0
+  index: -1
+head
+  rotate: false
+  xy: 2, 74
+  size: 172, 173
+  orig: 172, 173
+  offset: 0, 0
+  index: -1
+mantles
+  rotate: false
+  xy: 2, 17
+  size: 136, 55
+  orig: 136, 55
+  offset: 0, 0
+  index: -1
+mouth
+  rotate: false
+  xy: 2, 2
+  size: 61, 13
+  orig: 61, 13
+  offset: 0, 0
+  index: -1
+shin1
+  rotate: false
+  xy: 482, 119
+  size: 53, 57
+  orig: 53, 57
+  offset: 0, 0
+  index: -1
+shin2
+  rotate: false
+  xy: 192, 32
+  size: 51, 54
+  orig: 51, 54
+  offset: 0, 0
+  index: -1
+sword
+  rotate: false
+  xy: 324, 178
+  size: 216, 69
+  orig: 216, 69
+  offset: 0, 0
+  index: -1
+thigh1
+  rotate: false
+  xy: 542, 184
+  size: 60, 63
+  orig: 60, 63
+  offset: 0, 0
+  index: -1
+thigh2
+  rotate: false
+  xy: 423, 112
+  size: 57, 64
+  orig: 57, 64
+  offset: 0, 0
+  index: -1
+upper-arm1
+  rotate: false
+  xy: 140, 16
+  size: 50, 56
+  orig: 50, 56
+  offset: 0, 0
+  index: -1
+upper-arm2
+  rotate: false
+  xy: 245, 27
+  size: 39, 59
+  orig: 39, 59
+  offset: 0, 0
+  index: -1

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

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

Різницю між файлами не показано, бо вона завелика
+ 116 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/hero-pro.json


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

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 33cbc24302a26c1438b20d9253eee469
+timeCreated: 1524005968
+licenseType: Free
+TextScriptImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
spine-unity/Assets/Spine Examples/Spine/Hero/hero-pro.png


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

@@ -0,0 +1,68 @@
+fileFormatVersion: 2
+guid: 25b07e861d1a62f4db687c871e4a3828
+timeCreated: 1524005969
+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/Spine Examples/Spine/Hero/hero-pro_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: hero-pro_Atlas
+  m_EditorClassIdentifier: 
+  atlasFile: {fileID: 4900000, guid: d7e3bd7e6f971cb428513ebf424e0846, type: 3}
+  materials:
+  - {fileID: 2100000, guid: 9aa2023c2c91b254f9cb0a4fba19af00, type: 2}

+ 9 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/hero-pro_Atlas.asset.meta

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

+ 27 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/hero-pro_Material.mat

@@ -0,0 +1,27 @@
+%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: hero-pro_Material
+  m_Shader: {fileID: 4800000, guid: 1e8a610c9e01c3648bac42585e5fc676, type: 3}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 25b07e861d1a62f4db687c871e4a3828, 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/Spine Examples/Spine/Hero/hero-pro_Material.mat.meta

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

+ 34 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/hero-pro_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: hero-pro_SkeletonData
+  m_EditorClassIdentifier: 
+  atlasAssets:
+  - {fileID: 11400000, guid: 8384ab388a4037649a1f64fb2e1a8e7f, type: 2}
+  scale: 0.01
+  skeletonJSON: {fileID: 4900000, guid: 33cbc24302a26c1438b20d9253eee469, type: 3}
+  fromAnimation:
+  - fall
+  - run-from fall
+  - fall
+  - idle
+  toAnimation:
+  - run-from fall
+  - run
+  - crouch
+  - crouch
+  duration:
+  - 0.05
+  - 0
+  - 0
+  - 0
+  defaultMix: 0.1
+  controller: {fileID: 0}

+ 9 - 0
spine-unity/Assets/Spine Examples/Spine/Hero/hero-pro_SkeletonData.asset.meta

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

Деякі файли не було показано, через те що забагато файлів було змінено