From 65e8d12e635a6322fdbf9897882386aac083bbe0 Mon Sep 17 00:00:00 2001 From: pharan Date: Tue, 18 Dec 2018 14:02:38 +0800 Subject: [PATCH 1/4] [unity] Fix tint black buffer mismatched sizes when vertex array is smaller. --- .../Runtime/spine-unity/Mesh Generation/SpineMesh.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SpineMesh.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SpineMesh.cs index 260362b42..67a69c2b2 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SpineMesh.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SpineMesh.cs @@ -979,13 +979,13 @@ namespace Spine.Unity { var vbi = vertexBuffer.Items; var ubi = uvBuffer.Items; var cbi = colorBuffer.Items; + int vbiLength = vbi.Length; // Zero the extra. { int listCount = vertexBuffer.Count; - int arrayLength = vertexBuffer.Items.Length; var vector3zero = Vector3.zero; - for (int i = listCount; i < arrayLength; i++) + for (int i = listCount; i < vbiLength; i++) vbi[i] = vector3zero; } @@ -1028,6 +1028,12 @@ namespace Spine.Unity { if (settings.tintBlack) { if (uv2 != null) { + // Sometimes, the vertex buffer becomes smaller. We need to trim the size of the tint black buffers to match. + if (vbiLength > uv2.Items.Length) { + Array.Resize(ref uv2.Items, vbiLength); + Array.Resize(ref uv3.Items, vbiLength); + uv2.Count = uv3.Count = vbiLength; + } mesh.uv2 = this.uv2.Items; mesh.uv3 = this.uv3.Items; } From 9d77b4bf12acd11857f34f4342718f94362e3988 Mon Sep 17 00:00:00 2001 From: NathanSweet Date: Wed, 19 Dec 2018 12:45:30 +0100 Subject: [PATCH 2/4] [libgdx] Moved duplicate code outside the IF. --- .../spine/attachments/RegionAttachment.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/RegionAttachment.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/RegionAttachment.java index 4d5bf3ed2..ad18eb36b 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/RegionAttachment.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/RegionAttachment.java @@ -70,14 +70,12 @@ public class RegionAttachment extends Attachment { float localY = -localY2; if (region instanceof AtlasRegion) { AtlasRegion region = (AtlasRegion)this.region; + localX += region.offsetX / region.originalWidth * width; + localY += region.offsetY / region.originalHeight * height; if (region.rotate) { - localX += region.offsetX / region.originalWidth * width; - localY += region.offsetY / region.originalHeight * height; localX2 -= (region.originalWidth - region.offsetX - region.packedHeight) / region.originalWidth * width; localY2 -= (region.originalHeight - region.offsetY - region.packedWidth) / region.originalHeight * height; } else { - localX += region.offsetX / region.originalWidth * width; - localY += region.offsetY / region.originalHeight * height; localX2 -= (region.originalWidth - region.offsetX - region.packedWidth) / region.originalWidth * width; localY2 -= (region.originalHeight - region.offsetY - region.packedHeight) / region.originalHeight * height; } From 63238bfc69d449bffa6518f2c357a8204ba90bff Mon Sep 17 00:00:00 2001 From: NathanSweet Date: Wed, 19 Dec 2018 14:39:46 +0100 Subject: [PATCH 3/4] [libgdx] Handle whitespace stripping for mesh texture regions. --- .../spine/attachments/MeshAttachment.java | 38 ++++++++++++------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/MeshAttachment.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/MeshAttachment.java index a1cba92db..a4d87994f 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/MeshAttachment.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/attachments/MeshAttachment.java @@ -33,6 +33,7 @@ package com.esotericsoftware.spine.attachments; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.g2d.TextureAtlas.AtlasRegion; import com.badlogic.gdx.graphics.g2d.TextureRegion; + import com.esotericsoftware.spine.Animation.DeformTimeline; /** An attachment that displays a textured mesh. A mesh has hull vertices and internal vertices within the hull. Holes are not @@ -70,8 +71,27 @@ public class MeshAttachment extends VertexAttachment { /** Calculates {@link #uvs} using {@link #regionUVs} and the {@link #region}. Must be called after changing the region UVs or * region. */ public void updateUVs () { + float[] regionUVs = this.regionUVs; + if (this.uvs == null || this.uvs.length != regionUVs.length) this.uvs = new float[regionUVs.length]; + float[] uvs = this.uvs; float u, v, width, height; - if (region == null) { + if (region instanceof AtlasRegion) { + AtlasRegion region = (AtlasRegion)this.region; + float textureWidth = region.getTexture().getWidth(), textureHeight = region.getTexture().getHeight(); + width = region.originalWidth / textureWidth; + height = region.originalHeight / textureHeight; + if (region.rotate) { + u = region.getU() - (region.originalHeight - region.offsetY - region.packedWidth) / textureWidth; + v = region.getV() - (region.originalWidth - region.offsetX - region.packedHeight) / textureHeight; + for (int i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i + 1] * height; + uvs[i + 1] = v + width - regionUVs[i] * width; + } + return; + } + u = region.getU() - region.offsetX / textureWidth; + v = region.getV() - (region.originalHeight - region.offsetY - region.packedHeight) / textureHeight; + } else if (region == null) { u = v = 0; width = height = 1; } else { @@ -80,19 +100,9 @@ public class MeshAttachment extends VertexAttachment { width = region.getU2() - u; height = region.getV2() - v; } - float[] regionUVs = this.regionUVs; - if (this.uvs == null || this.uvs.length != regionUVs.length) this.uvs = new float[regionUVs.length]; - float[] uvs = this.uvs; - if (region instanceof AtlasRegion && ((AtlasRegion)region).rotate) { - for (int i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i + 1] * width; - uvs[i + 1] = v + height - regionUVs[i] * height; - } - } else { - for (int i = 0, n = uvs.length; i < n; i += 2) { - uvs[i] = u + regionUVs[i] * width; - uvs[i + 1] = v + regionUVs[i + 1] * height; - } + for (int i = 0, n = uvs.length; i < n; i += 2) { + uvs[i] = u + regionUVs[i] * width; + uvs[i + 1] = v + regionUVs[i + 1] * height; } } From 0180f593368a196a53403f2b79bb65966a527c7b Mon Sep 17 00:00:00 2001 From: pharan Date: Thu, 20 Dec 2018 10:54:19 +0800 Subject: [PATCH 4/4] [unity] Improved Mecanim+SkeletonAnimation example. --- .../Other Examples/FixedTimestepUpdates.unity | 8 +- .../AnimationState with Mecanim.unity | 336 --------- ...ler => Hero Logic StateMachine.controller} | 86 +-- ...> Hero Logic StateMachine.controller.meta} | 0 ...Mecanim Logic SkeletonAnimation View.unity | 701 ++++++++++++++++++ ...m Logic SkeletonAnimation View.unity.meta} | 4 +- .../Scripts/AnimationStateMecanimState.cs | 62 -- .../Scripts/Mecanim as Logic.meta | 9 + .../DummyMecanimControllerExample.cs} | 15 +- .../DummyMecanimControllerExample.cs.meta} | 0 .../MecanimToAnimationHandleExample.cs | 22 + .../MecanimToAnimationHandleExample.cs.meta} | 4 +- .../SkeletonAnimationHandleExample.cs | 77 ++ .../SkeletonAnimationHandleExample.cs.meta | 12 + .../SkeletonAnimationFixedTimestep.cs | 2 +- .../Scripts/SpineboyFootplanter.cs | 2 +- .../spineboy-pro/spineboy-pro_Material.mat | 8 +- 17 files changed, 851 insertions(+), 497 deletions(-) delete mode 100644 spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/AnimationState with Mecanim.unity rename spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/{Hero.controller => Hero Logic StateMachine.controller} (84%) rename spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/{Hero.controller.meta => Hero Logic StateMachine.controller.meta} (100%) create mode 100644 spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/Mecanim Logic SkeletonAnimation View.unity rename spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/{AnimationState with Mecanim.unity.meta => Mecanim Logic SkeletonAnimation View.unity.meta} (64%) delete mode 100644 spine-unity/Assets/Spine Examples/Scripts/AnimationStateMecanimState.cs create mode 100644 spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic.meta rename spine-unity/Assets/Spine Examples/Scripts/{AnimationStateWithMecanimExample.cs => Mecanim as Logic/DummyMecanimControllerExample.cs} (82%) rename spine-unity/Assets/Spine Examples/Scripts/{AnimationStateWithMecanimExample.cs.meta => Mecanim as Logic/DummyMecanimControllerExample.cs.meta} (100%) create mode 100644 spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/MecanimToAnimationHandleExample.cs rename spine-unity/Assets/Spine Examples/Scripts/{AnimationStateMecanimState.cs.meta => Mecanim as Logic/MecanimToAnimationHandleExample.cs.meta} (76%) create mode 100644 spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/SkeletonAnimationHandleExample.cs create mode 100644 spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/SkeletonAnimationHandleExample.cs.meta diff --git a/spine-unity/Assets/Spine Examples/Other Examples/FixedTimestepUpdates.unity b/spine-unity/Assets/Spine Examples/Other Examples/FixedTimestepUpdates.unity index ba1cadb69..157186e76 100644 --- a/spine-unity/Assets/Spine Examples/Other Examples/FixedTimestepUpdates.unity +++ b/spine-unity/Assets/Spine Examples/Other Examples/FixedTimestepUpdates.unity @@ -142,7 +142,7 @@ MonoBehaviour: frameDeltaTime: 0.083333336 maxFrameSkip: 2 frameskipMeshUpdate: 1 - timeOffset: 0.033333335 + timeOffset: 0.04166667 --- !u!114 &466319116 MonoBehaviour: m_ObjectHideFlags: 0 @@ -222,7 +222,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &706647559 GameObject: @@ -386,7 +386,7 @@ RectTransform: m_Children: - {fileID: 706647560} m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -491,7 +491,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1140995466 MonoBehaviour: diff --git a/spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/AnimationState with Mecanim.unity b/spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/AnimationState with Mecanim.unity deleted file mode 100644 index 7480edb7f..000000000 --- a/spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/AnimationState with Mecanim.unity +++ /dev/null @@ -1,336 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -OcclusionCullingSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_OcclusionBakeSettings: - smallestOccluder: 5 - smallestHole: 0.25 - backfaceThreshold: 100 - m_SceneGUID: 00000000000000000000000000000000 - m_OcclusionCullingData: {fileID: 0} ---- !u!104 &2 -RenderSettings: - m_ObjectHideFlags: 0 - serializedVersion: 8 - m_Fog: 0 - m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} - m_FogMode: 3 - m_FogDensity: 0.01 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} - m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} - m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} - m_AmbientIntensity: 1 - m_AmbientMode: 3 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 0} - m_HaloStrength: 0.5 - m_FlareStrength: 1 - m_FlareFadeSpeed: 3 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} - m_DefaultReflectionMode: 0 - m_DefaultReflectionResolution: 128 - m_ReflectionBounces: 1 - m_ReflectionIntensity: 1 - m_CustomReflection: {fileID: 0} - m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} ---- !u!157 &3 -LightmapSettings: - m_ObjectHideFlags: 0 - serializedVersion: 9 - m_GIWorkflowMode: 1 - m_GISettings: - serializedVersion: 2 - m_BounceScale: 1 - m_IndirectOutputScale: 1 - m_AlbedoBoost: 1 - m_TemporalCoherenceThreshold: 1 - m_EnvironmentLightingMode: 0 - m_EnableBakedLightmaps: 0 - m_EnableRealtimeLightmaps: 0 - m_LightmapEditorSettings: - serializedVersion: 8 - m_Resolution: 2 - m_BakeResolution: 40 - m_TextureWidth: 1024 - m_TextureHeight: 1024 - m_AO: 0 - m_AOMaxDistance: 1 - m_CompAOExponent: 1 - m_CompAOExponentDirect: 0 - m_Padding: 2 - m_LightmapParameters: {fileID: 0} - m_LightmapsBakeMode: 1 - m_TextureCompression: 1 - m_FinalGather: 0 - m_FinalGatherFiltering: 1 - m_FinalGatherRayCount: 256 - m_ReflectionCompression: 2 - m_MixedBakeMode: 3 - m_BakeBackend: 0 - m_PVRSampling: 1 - m_PVRDirectSampleCount: 32 - m_PVRSampleCount: 500 - m_PVRBounces: 2 - m_PVRFiltering: 0 - m_PVRFilteringMode: 1 - m_PVRCulling: 1 - m_PVRFilteringGaussRadiusDirect: 1 - m_PVRFilteringGaussRadiusIndirect: 5 - m_PVRFilteringGaussRadiusAO: 2 - m_PVRFilteringAtrousColorSigma: 1 - m_PVRFilteringAtrousNormalSigma: 1 - m_PVRFilteringAtrousPositionSigma: 1 - m_LightingDataAsset: {fileID: 0} - m_ShadowMaskMode: 2 ---- !u!196 &4 -NavMeshSettings: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_BuildSettings: - serializedVersion: 2 - agentTypeID: 0 - agentRadius: 0.5 - agentHeight: 2 - agentSlope: 45 - agentClimb: 0.4 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - minRegionArea: 2 - manualCellSize: 0 - cellSize: 0.16666667 - manualTileSize: 0 - tileSize: 256 - accuratePlacement: 0 - m_NavMeshData: {fileID: 0} ---- !u!1 &1801506823 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 - m_Component: - - component: {fileID: 1801506828} - - component: {fileID: 1801506827} - - component: {fileID: 1801506826} - - component: {fileID: 1801506825} - - component: {fileID: 1801506824} - - component: {fileID: 1801506829} - m_Layer: 0 - m_Name: Spine GameObject (hero-pro) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!95 &1801506824 -Animator: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1801506823} - m_Enabled: 1 - m_Avatar: {fileID: 0} - m_Controller: {fileID: 9100000, guid: cec34498f2eb26b488452ec274c54439, type: 2} - m_CullingMode: 0 - m_UpdateMode: 0 - m_ApplyRootMotion: 0 - m_LinearVelocityBlending: 0 - m_WarningMessage: - m_HasTransformHierarchy: 1 - m_AllowConstantClipSamplingOptimization: 1 ---- !u!114 &1801506825 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1801506823} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d247ba06193faa74d9335f5481b2b56c, type: 3} - m_Name: - m_EditorClassIdentifier: - skeletonDataAsset: {fileID: 11400000, guid: 2f899e95232e6144786de8fb99678a8d, type: 2} - initialSkinName: default - initialFlipX: 0 - initialFlipY: 0 - separatorSlotNames: [] - zSpacing: 0 - useClipping: 1 - immutableTriangles: 0 - pmaVertexColors: 1 - clearStateOnDisable: 0 - tintBlack: 0 - singleSubmesh: 0 - addNormals: 0 - calculateTangents: 0 - disableRenderingOnOverride: 1 - _animationName: - loop: 0 - timeScale: 1 ---- !u!23 &1801506826 -MeshRenderer: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1801506823} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 2100000, guid: 9aa2023c2c91b254f9cb0a4fba19af00, 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 &1801506827 -MeshFilter: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1801506823} - m_Mesh: {fileID: 0} ---- !u!4 &1801506828 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1801506823} - 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: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1801506829 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1801506823} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 782062825deffd64ba7e7e9f978788e5, type: 3} - m_Name: - m_EditorClassIdentifier: - walkButton: 304 - jumpButton: 32 - horizontalSpeedProperty: Speed - verticalSpeedProperty: VerticalSpeed - groundedProperty: Grounded - jumpDuration: 0.8 - speed: {x: 0, y: 0} - isGrounded: 1 ---- !u!1 &1959713007 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 - m_Component: - - component: {fileID: 1959713012} - - component: {fileID: 1959713011} - - component: {fileID: 1959713010} - - component: {fileID: 1959713009} - - component: {fileID: 1959713008} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!81 &1959713008 -AudioListener: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1959713007} - m_Enabled: 1 ---- !u!124 &1959713009 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1959713007} - m_Enabled: 1 ---- !u!92 &1959713010 -Behaviour: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1959713007} - m_Enabled: 1 ---- !u!20 &1959713011 -Camera: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1959713007} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 1 - orthographic size: 5 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 - m_StereoMirrorMode: 0 ---- !u!4 &1959713012 -Transform: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 1959713007} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/Hero.controller b/spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/Hero Logic StateMachine.controller similarity index 84% rename from spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/Hero.controller rename to spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/Hero Logic StateMachine.controller index a379ce3c4..9078895d6 100644 --- a/spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/Hero.controller +++ b/spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/Hero Logic StateMachine.controller @@ -5,7 +5,7 @@ AnimatorController: m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} - m_Name: Hero + m_Name: Hero Logic StateMachine serializedVersion: 5 m_AnimatorParameters: - m_Name: Speed @@ -39,7 +39,7 @@ AnimatorController: m_IKPass: 0 m_SyncedLayerAffectsTiming: 0 m_Controller: {fileID: 9100000} ---- !u!114 &114120869086152502 +--- !u!114 &114611893236435034 MonoBehaviour: m_ObjectHideFlags: 1 m_PrefabParentObject: {fileID: 0} @@ -47,71 +47,9 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 536bdde8dc7bbb641b17da9221d6562f, type: 3} + m_Script: {fileID: 11500000, guid: 16f3a0143bc0dbc4793717b6d2ff94a2, type: 3} m_Name: m_EditorClassIdentifier: - animation: {fileID: 11400000, guid: 29c1381a00cfb2c4d996f2a02fcc4506, type: 2} - fromTransitions: [] ---- !u!114 &114405704584849640 -MonoBehaviour: - m_ObjectHideFlags: 3 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 536bdde8dc7bbb641b17da9221d6562f, type: 3} - m_Name: - m_EditorClassIdentifier: - animation: {fileID: 11400000, guid: cc83238c61de380499565292bef7ada4, type: 2} - fromTransitions: - - from: {fileID: 11400000, guid: 9fc9ad17b39175242a17dedc100251e5, type: 2} - transition: {fileID: 11400000, guid: fcca5e996ae24ba43baaaadef1fb6ad9, type: 2} - - from: {fileID: 11400000, guid: 29c1381a00cfb2c4d996f2a02fcc4506, type: 2} - transition: {fileID: 11400000, guid: fcca5e996ae24ba43baaaadef1fb6ad9, type: 2} ---- !u!114 &114705841842784304 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 536bdde8dc7bbb641b17da9221d6562f, type: 3} - m_Name: - m_EditorClassIdentifier: - animation: {fileID: 11400000, guid: 8e32f0310bb5c02488c5c002dd41e7cb, type: 2} - fromTransitions: - - from: {fileID: 11400000, guid: 9fc9ad17b39175242a17dedc100251e5, type: 2} - transition: {fileID: 11400000, guid: 714e39dce7285c145bdf142c38ef9a9b, type: 2} - - from: {fileID: 11400000, guid: 29c1381a00cfb2c4d996f2a02fcc4506, type: 2} - transition: {fileID: 11400000, guid: 714e39dce7285c145bdf142c38ef9a9b, type: 2} ---- !u!114 &114724632308633334 -MonoBehaviour: - m_ObjectHideFlags: 3 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 536bdde8dc7bbb641b17da9221d6562f, type: 3} - m_Name: - m_EditorClassIdentifier: - animation: {fileID: 11400000, guid: 096b05b71bb32cb409c1c8fd233b7ac3, type: 2} - fromTransitions: [] ---- !u!114 &114920507004961638 -MonoBehaviour: - m_ObjectHideFlags: 3 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 536bdde8dc7bbb641b17da9221d6562f, type: 3} - m_Name: - m_EditorClassIdentifier: - animation: {fileID: 11400000, guid: 9fc9ad17b39175242a17dedc100251e5, type: 2} - fromTransitions: [] --- !u!114 &114924159685657998 MonoBehaviour: m_ObjectHideFlags: 1 @@ -546,8 +484,7 @@ AnimatorState: m_Transitions: - {fileID: 1101201216029417820} - {fileID: 1101340356729470006} - m_StateMachineBehaviours: - - {fileID: 114705841842784304} + m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 m_WriteDefaultValues: 1 @@ -573,8 +510,7 @@ AnimatorState: - {fileID: 1101630671207954956} - {fileID: 1101961669674605828} - {fileID: 1101908416750231440} - m_StateMachineBehaviours: - - {fileID: 114724632308633334} + m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 m_WriteDefaultValues: 1 @@ -600,8 +536,7 @@ AnimatorState: - {fileID: 1101441186354543552} - {fileID: 1101479631958084084} - {fileID: 1101080999605414308} - m_StateMachineBehaviours: - - {fileID: 114920507004961638} + m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 m_WriteDefaultValues: 1 @@ -626,8 +561,7 @@ AnimatorState: m_Transitions: - {fileID: 1101191797102245804} - {fileID: 1101149887938196740} - m_StateMachineBehaviours: - - {fileID: 114405704584849640} + m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 m_WriteDefaultValues: 1 @@ -652,8 +586,7 @@ AnimatorState: m_Transitions: - {fileID: 1101246723209160918} - {fileID: 1101284229063918858} - m_StateMachineBehaviours: - - {fileID: 114120869086152502} + m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 m_WriteDefaultValues: 1 @@ -693,7 +626,8 @@ AnimatorStateMachine: m_AnyStateTransitions: [] m_EntryTransitions: [] m_StateMachineTransitions: {} - m_StateMachineBehaviours: [] + m_StateMachineBehaviours: + - {fileID: 114611893236435034} m_AnyStatePosition: {x: -72, y: 84, z: 0} m_EntryPosition: {x: -72, y: 132, z: 0} m_ExitPosition: {x: 888, y: 84, z: 0} diff --git a/spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/Hero.controller.meta b/spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/Hero Logic StateMachine.controller.meta similarity index 100% rename from spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/Hero.controller.meta rename to spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/Hero Logic StateMachine.controller.meta diff --git a/spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/Mecanim Logic SkeletonAnimation View.unity b/spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/Mecanim Logic SkeletonAnimation View.unity new file mode 100644 index 000000000..e273b51de --- /dev/null +++ b/spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/Mecanim Logic SkeletonAnimation View.unity @@ -0,0 +1,701 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 8 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 8 + m_Resolution: 2 + m_BakeResolution: 40 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 3 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFiltering: 0 + m_PVRFilteringMode: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousColorSigma: 1 + m_PVRFilteringAtrousNormalSigma: 1 + m_PVRFilteringAtrousPositionSigma: 1 + m_LightingDataAsset: {fileID: 0} + m_ShadowMaskMode: 2 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &54157323 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 54157327} + - component: {fileID: 54157326} + - component: {fileID: 54157325} + - component: {fileID: 54157324} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &54157324 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 54157323} + 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 &54157325 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 54157323} + 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 &54157326 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 54157323} + 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 &54157327 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 54157323} + 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: 220954932} + m_Father: {fileID: 0} + m_RootOrder: 2 + 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} +--- !u!1 &220954931 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 220954932} + - component: {fileID: 220954934} + - component: {fileID: 220954933} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &220954932 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 220954931} + 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: 54157327} + 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: -263} + m_SizeDelta: {x: 643, y: 183} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &220954933 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 220954931} + 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: 21 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: An example of Mecanim-driven character logic that commands SkeletonAnimation. + One script handles communicating with SkeletonAnimation (and handling transitions + and other animation logic), a StateMachineBehaviour sends information to that + script to let it know what character game state is active. +--- !u!222 &220954934 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 220954931} +--- !u!1 &391192147 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 391192151} + - component: {fileID: 391192150} + - component: {fileID: 391192149} + - component: {fileID: 391192148} + - component: {fileID: 391192152} + m_Layer: 0 + m_Name: Spine GameObject (hero-pro) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &391192148 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 391192147} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d247ba06193faa74d9335f5481b2b56c, type: 3} + m_Name: + m_EditorClassIdentifier: + skeletonDataAsset: {fileID: 11400000, guid: 2f899e95232e6144786de8fb99678a8d, type: 2} + initialSkinName: + initialFlipX: 0 + initialFlipY: 0 + separatorSlotNames: [] + zSpacing: 0 + useClipping: 1 + immutableTriangles: 0 + pmaVertexColors: 1 + clearStateOnDisable: 0 + tintBlack: 0 + singleSubmesh: 0 + addNormals: 0 + calculateTangents: 0 + disableRenderingOnOverride: 1 + _animationName: + loop: 1 + timeScale: 1 +--- !u!23 &391192149 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 391192147} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 9aa2023c2c91b254f9cb0a4fba19af00, 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 &391192150 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 391192147} + m_Mesh: {fileID: 0} +--- !u!4 &391192151 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 391192147} + 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: 939164933} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &391192152 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 391192147} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1d55a3bd6ac81af44b2f9a4447f2ae72, type: 3} + m_Name: + m_EditorClassIdentifier: + skeletonAnimation: {fileID: 391192148} + eventName: footstep + audioSource: {fileID: 913482839} + audioClip: {fileID: 8300000, guid: e885484e1bc99fb47a0ac3f6bfa586b1, type: 3} + basePitch: 1 + randomPitchOffset: 0.1 + logDebugMessage: 0 +--- !u!1 &913482838 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 913482840} + - component: {fileID: 913482839} + m_Layer: 0 + m_Name: Audio Source + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!82 &913482839 +AudioSource: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 913482838} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 1 + m_Volume: 0.297 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + - serializedVersion: 2 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 +--- !u!4 &913482840 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 913482838} + 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: 939164933} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &939164930 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 939164933} + - component: {fileID: 939164932} + - component: {fileID: 939164931} + - component: {fileID: 939164934} + m_Layer: 0 + m_Name: Hero + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &939164931 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 939164930} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 782062825deffd64ba7e7e9f978788e5, type: 3} + m_Name: + m_EditorClassIdentifier: + logicAnimator: {fileID: 939164932} + animationHandle: {fileID: 939164934} + walkButton: 304 + jumpButton: 32 + horizontalSpeedProperty: Speed + verticalSpeedProperty: VerticalSpeed + groundedProperty: Grounded + jumpDuration: 1.5 + speed: {x: 0, y: 0} + isGrounded: 0 +--- !u!95 &939164932 +Animator: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 939164930} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: cec34498f2eb26b488452ec274c54439, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 +--- !u!4 &939164933 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 939164930} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.03, y: -0.96, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 391192151} + - {fileID: 913482840} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &939164934 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 939164930} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd8d49de34fd0724ca8c1ae3c44afe59, type: 3} + m_Name: + m_EditorClassIdentifier: + skeletonAnimation: {fileID: 391192148} + statesAndAnimations: + - stateName: Idle + animation: {fileID: 11400000, guid: 8e32f0310bb5c02488c5c002dd41e7cb, type: 2} + - stateName: Walk + animation: {fileID: 11400000, guid: 096b05b71bb32cb409c1c8fd233b7ac3, type: 2} + - stateName: Run + animation: {fileID: 11400000, guid: cc83238c61de380499565292bef7ada4, type: 2} + - stateName: Jump + animation: {fileID: 11400000, guid: 9fc9ad17b39175242a17dedc100251e5, type: 2} + - stateName: Fall + animation: {fileID: 11400000, guid: 29c1381a00cfb2c4d996f2a02fcc4506, type: 2} + transitions: + - from: {fileID: 11400000, guid: 29c1381a00cfb2c4d996f2a02fcc4506, type: 2} + to: {fileID: 11400000, guid: cc83238c61de380499565292bef7ada4, type: 2} + transition: {fileID: 11400000, guid: fcca5e996ae24ba43baaaadef1fb6ad9, type: 2} + - from: {fileID: 11400000, guid: 29c1381a00cfb2c4d996f2a02fcc4506, type: 2} + to: {fileID: 11400000, guid: 8e32f0310bb5c02488c5c002dd41e7cb, type: 2} + transition: {fileID: 11400000, guid: 714e39dce7285c145bdf142c38ef9a9b, type: 2} + - from: {fileID: 11400000, guid: 29c1381a00cfb2c4d996f2a02fcc4506, type: 2} + to: {fileID: 11400000, guid: 25961ff211f6f3947be85f8aab3f2630, type: 2} + transition: {fileID: 11400000, guid: 6c587772a6f7df94b934b353291c008c, type: 2} +--- !u!1 &1042501228 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1042501233} + - component: {fileID: 1042501232} + - component: {fileID: 1042501231} + - component: {fileID: 1042501230} + - component: {fileID: 1042501229} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1042501229 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1042501228} + m_Enabled: 1 +--- !u!124 &1042501230 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1042501228} + m_Enabled: 1 +--- !u!92 &1042501231 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1042501228} + m_Enabled: 1 +--- !u!20 &1042501232 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1042501228} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!4 &1042501233 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1042501228} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/AnimationState with Mecanim.unity.meta b/spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/Mecanim Logic SkeletonAnimation View.unity.meta similarity index 64% rename from spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/AnimationState with Mecanim.unity.meta rename to spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/Mecanim Logic SkeletonAnimation View.unity.meta index 20063753f..03d389079 100644 --- a/spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/AnimationState with Mecanim.unity.meta +++ b/spine-unity/Assets/Spine Examples/Other Examples/StateMachine SkeletonAnimation/Mecanim Logic SkeletonAnimation View.unity.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: afd3c9ec31200bc49b169c22f00b010b -timeCreated: 1531300871 +guid: 1fba3cdaf99163b4cb14533eb6bd9b2a +timeCreated: 1545228667 licenseType: Free DefaultImporter: userData: diff --git a/spine-unity/Assets/Spine Examples/Scripts/AnimationStateMecanimState.cs b/spine-unity/Assets/Spine Examples/Scripts/AnimationStateMecanimState.cs deleted file mode 100644 index 46afe77f5..000000000 --- a/spine-unity/Assets/Spine Examples/Scripts/AnimationStateMecanimState.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -using Spine; -using Spine.Unity; - -public class AnimationStateMecanimState : StateMachineBehaviour { - - #region Inspector - public AnimationReferenceAsset animation; - - [System.Serializable] - public struct AnimationTransition { - public AnimationReferenceAsset from; - public AnimationReferenceAsset transition; - } - - [UnityEngine.Serialization.FormerlySerializedAs("transitions")] - public List fromTransitions = new List(); - #endregion - - Spine.AnimationState state; - - public void Initialize (Animator animator) { - if (state == null) { - var animationStateComponent = (animator.GetComponent(typeof(IAnimationStateComponent))) as IAnimationStateComponent; - state = animationStateComponent.AnimationState; - } - } - - override public void OnStateEnter (Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { - if (state == null) { - Initialize(animator); - } - - float timeScale = stateInfo.speed; - var current = state.GetCurrent(layerIndex); - - bool transitionPlayed = false; - if (current != null && fromTransitions.Count > 0) { - foreach (var t in fromTransitions) { - if (t.from.Animation == current.Animation) { - var transitionEntry = state.SetAnimation(layerIndex, t.transition.Animation, false); - transitionEntry.TimeScale = timeScale; - transitionPlayed = true; - break; - } - } - } - - TrackEntry trackEntry; - if (transitionPlayed) { - trackEntry = state.AddAnimation(layerIndex, animation.Animation, stateInfo.loop, 0); - } else { - trackEntry = state.SetAnimation(layerIndex, animation.Animation, stateInfo.loop); - } - trackEntry.TimeScale = timeScale; - - } - -} diff --git a/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic.meta b/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic.meta new file mode 100644 index 000000000..82b55672d --- /dev/null +++ b/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: deef60f3c6fd9ae45b2c4dfcac0706f1 +folderAsset: yes +timeCreated: 1545227769 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Assets/Spine Examples/Scripts/AnimationStateWithMecanimExample.cs b/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/DummyMecanimControllerExample.cs similarity index 82% rename from spine-unity/Assets/Spine Examples/Scripts/AnimationStateWithMecanimExample.cs rename to spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/DummyMecanimControllerExample.cs index 9121fdeb8..c37b14a51 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/AnimationStateWithMecanimExample.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/DummyMecanimControllerExample.cs @@ -2,14 +2,11 @@ using System.Collections.Generic; using UnityEngine; -using Spine; -using Spine.Unity; - namespace Spine.Unity.Examples { - public class AnimationStateWithMecanimExample : MonoBehaviour { + public class DummyMecanimControllerExample : MonoBehaviour { - SkeletonAnimation skeletonAnimation; - Animator logicAnimator; + public Animator logicAnimator; + public SkeletonAnimationHandleExample animationHandle; [Header("Controls")] public KeyCode walkButton = KeyCode.LeftShift; @@ -26,9 +23,6 @@ namespace Spine.Unity.Examples { public bool isGrounded; void Awake () { - skeletonAnimation = GetComponent(); - logicAnimator = GetComponent(); - isGrounded = true; } @@ -42,7 +36,7 @@ namespace Spine.Unity.Examples { // Flip skeleton. if (x != 0) { - skeletonAnimation.Skeleton.ScaleX = x > 0 ? 1f : -1f; + animationHandle.SetFlip(x); } if (Input.GetKeyDown(jumpButton)) { @@ -53,7 +47,6 @@ namespace Spine.Unity.Examples { logicAnimator.SetFloat(horizontalSpeedProperty, Mathf.Abs(speed.x)); logicAnimator.SetFloat(verticalSpeedProperty, speed.y); logicAnimator.SetBool(groundedProperty, isGrounded); - } IEnumerator FakeJump () { diff --git a/spine-unity/Assets/Spine Examples/Scripts/AnimationStateWithMecanimExample.cs.meta b/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/DummyMecanimControllerExample.cs.meta similarity index 100% rename from spine-unity/Assets/Spine Examples/Scripts/AnimationStateWithMecanimExample.cs.meta rename to spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/DummyMecanimControllerExample.cs.meta diff --git a/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/MecanimToAnimationHandleExample.cs b/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/MecanimToAnimationHandleExample.cs new file mode 100644 index 000000000..4b16aea24 --- /dev/null +++ b/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/MecanimToAnimationHandleExample.cs @@ -0,0 +1,22 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Spine.Unity.Examples { + + // This StateMachineBehaviour handles sending the Mecanim state information to the component that handles playing the Spine animations. + public class MecanimToAnimationHandleExample : StateMachineBehaviour { + SkeletonAnimationHandleExample animationHandle; + bool initialized; + + override public void OnStateEnter (Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { + if (!initialized) { + animationHandle = animator.GetComponent(); + initialized = true; + } + + animationHandle.PlayAnimationForState(stateInfo.shortNameHash, layerIndex); + } + } + +} diff --git a/spine-unity/Assets/Spine Examples/Scripts/AnimationStateMecanimState.cs.meta b/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/MecanimToAnimationHandleExample.cs.meta similarity index 76% rename from spine-unity/Assets/Spine Examples/Scripts/AnimationStateMecanimState.cs.meta rename to spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/MecanimToAnimationHandleExample.cs.meta index b205d8341..04cfac187 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/AnimationStateMecanimState.cs.meta +++ b/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/MecanimToAnimationHandleExample.cs.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: 536bdde8dc7bbb641b17da9221d6562f -timeCreated: 1531293563 +guid: 16f3a0143bc0dbc4793717b6d2ff94a2 +timeCreated: 1545230670 licenseType: Free MonoImporter: serializedVersion: 2 diff --git a/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/SkeletonAnimationHandleExample.cs b/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/SkeletonAnimationHandleExample.cs new file mode 100644 index 000000000..a77c19a76 --- /dev/null +++ b/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/SkeletonAnimationHandleExample.cs @@ -0,0 +1,77 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + + +namespace Spine.Unity.Examples { + public class SkeletonAnimationHandleExample : MonoBehaviour { + + public SkeletonAnimation skeletonAnimation; + public List statesAndAnimations = new List(); + public List transitions = new List(); + + [System.Serializable] + public class StateNameToAnimationReference { + public string stateName; + public AnimationReferenceAsset animation; + } + + [System.Serializable] + public struct AnimationTransition { + public AnimationReferenceAsset from; + public AnimationReferenceAsset to; + public AnimationReferenceAsset transition; + } + + readonly Dictionary transitionDictionary = new Dictionary(Spine.AnimationStateData.AnimationPairComparer.Instance); + + void Awake () { + foreach (var entry in transitions) { + // If uninitialized + entry.from.Initialize(); + entry.to.Initialize(); + entry.transition.Initialize(); + + transitionDictionary.Add(new AnimationStateData.AnimationPair(entry.from.Animation, entry.to.Animation), entry.transition.Animation); + } + } + + public void SetFlip (float horizontal) { + if (horizontal != 0) { + skeletonAnimation.Skeleton.ScaleX = horizontal > 0 ? 1f : -1f; + } + } + + public void PlayAnimationForState (int shortNameHash, int layerIndex) { + var foundAnimation = GetAnimationForState(shortNameHash); + if (foundAnimation == null) + return; + + PlayNewAnimation(foundAnimation, layerIndex); + } + + public Spine.Animation GetAnimationForState (int shortNameHash) { + var foundState = statesAndAnimations.Find(entry => Animator.StringToHash(entry.stateName) == shortNameHash); + return (foundState == null) ? null : foundState.animation; + } + + void PlayNewAnimation (Spine.Animation target, int layerIndex) { + Spine.Animation transition = null; + Spine.Animation current = null; + + var currentTrackEntry = skeletonAnimation.AnimationState.GetCurrent(layerIndex); + if (currentTrackEntry != null) { + current = currentTrackEntry.Animation; + if (current != null) + transitionDictionary.TryGetValue(new AnimationStateData.AnimationPair(current, target), out transition); + } + + if (transition != null) { + skeletonAnimation.AnimationState.SetAnimation(layerIndex, transition, false); + skeletonAnimation.AnimationState.AddAnimation(layerIndex, target, true, 0f); + } else { + skeletonAnimation.AnimationState.SetAnimation(layerIndex, target, true); + } + } + } +} \ No newline at end of file diff --git a/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/SkeletonAnimationHandleExample.cs.meta b/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/SkeletonAnimationHandleExample.cs.meta new file mode 100644 index 000000000..4b2abe88d --- /dev/null +++ b/spine-unity/Assets/Spine Examples/Scripts/Mecanim as Logic/SkeletonAnimationHandleExample.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: dd8d49de34fd0724ca8c1ae3c44afe59 +timeCreated: 1545230473 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonAnimationFixedTimestep.cs b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonAnimationFixedTimestep.cs index 65d8b4b3a..44113b848 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonAnimationFixedTimestep.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/Sample Components/SkeletonAnimationFixedTimestep.cs @@ -1,4 +1,4 @@ -/****************************************************************************** +/****************************************************************************** * Spine Runtimes Software License v2.5 * * Copyright (c) 2013-2016, Esoteric Software diff --git a/spine-unity/Assets/Spine Examples/Scripts/SpineboyFootplanter.cs b/spine-unity/Assets/Spine Examples/Scripts/SpineboyFootplanter.cs index 5df40d8b8..4220c831f 100644 --- a/spine-unity/Assets/Spine Examples/Scripts/SpineboyFootplanter.cs +++ b/spine-unity/Assets/Spine Examples/Scripts/SpineboyFootplanter.cs @@ -1,4 +1,4 @@ -using System.Collections; +using System.Collections; using System.Collections.Generic; using UnityEngine; diff --git a/spine-unity/Assets/Spine Examples/Spine Skeletons/spineboy-pro/spineboy-pro_Material.mat b/spine-unity/Assets/Spine Examples/Spine Skeletons/spineboy-pro/spineboy-pro_Material.mat index 0a9ccec76..8fd6e63ef 100644 --- a/spine-unity/Assets/Spine Examples/Spine Skeletons/spineboy-pro/spineboy-pro_Material.mat +++ b/spine-unity/Assets/Spine Examples/Spine Skeletons/spineboy-pro/spineboy-pro_Material.mat @@ -7,7 +7,7 @@ Material: m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_Name: spineboy-pro_Material - m_Shader: {fileID: 4800000, guid: 1e8a610c9e01c3648bac42585e5fc676, type: 3} + m_Shader: {fileID: 4800000, guid: 45495790b394f894a967dbf44489b57b, type: 3} m_ShaderKeywords: m_LightmapFlags: 4 m_EnableInstancingVariants: 0 @@ -24,5 +24,9 @@ Material: m_Offset: {x: 0, y: 0} m_Floats: - _Cutoff: 0.1 + - _FillPhase: 0 - _StraightAlphaInput: 0 - m_Colors: [] + m_Colors: + - _Black: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _FillColor: {r: 1, g: 1, b: 1, a: 1}