diff --git a/spine-csharp/src/AnimationState.cs b/spine-csharp/src/AnimationState.cs index f992efe0c..6e2dfb5b4 100644 --- a/spine-csharp/src/AnimationState.cs +++ b/spine-csharp/src/AnimationState.cs @@ -258,13 +258,17 @@ namespace Spine { break; case Dip: pose = MixPose.Setup; - alpha = alphaDip; + alpha = mix == 1 ? 0 : alphaDip; break; default: pose = MixPose.Setup; - alpha = alphaDip; - var dipMix = timelineDipMix[i]; - alpha *= Math.Max(0, 1 - dipMix.mixTime / dipMix.mixDuration); + if (mix == 1) { + alpha = 0; + } else { + alpha = alphaDip; + var dipMix = timelineDipMix[i]; + alpha *= Math.Max(0, 1 - dipMix.mixTime / dipMix.mixDuration); + } break; } from.totalAlpha += alpha; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java index 376f613ae..d011999bb 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java @@ -281,13 +281,17 @@ public class AnimationState { break; case DIP: pose = MixPose.setup; - alpha = alphaDip; + alpha = mix == 1 ? 0 : alphaDip; break; default: pose = MixPose.setup; - alpha = alphaDip; - TrackEntry dipMix = (TrackEntry)timelineDipMix[i]; - alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); + if (mix == 1) + alpha = 0; + else { + alpha = alphaDip; + TrackEntry dipMix = (TrackEntry)timelineDipMix[i]; + alpha *= Math.max(0, 1 - dipMix.mixTime / dipMix.mixDuration); + } break; } from.totalAlpha += alpha; diff --git a/spine-unity/Assets/spine-unity/Asset Types/Editor/SkeletonDataAssetInspector.cs b/spine-unity/Assets/spine-unity/Asset Types/Editor/SkeletonDataAssetInspector.cs index 43ee8ce84..c6d0bbc95 100644 --- a/spine-unity/Assets/spine-unity/Asset Types/Editor/SkeletonDataAssetInspector.cs +++ b/spine-unity/Assets/spine-unity/Asset Types/Editor/SkeletonDataAssetInspector.cs @@ -726,6 +726,9 @@ namespace Spine.Unity.Editor { } void DoRenderPreview (bool drawHandles) { + if (this.PreviewUtilityCamera.activeTexture == null || this.PreviewUtilityCamera.targetTexture == null ) + return; + GameObject go = this.m_previewInstance; if (m_requireRefresh && go != null) { diff --git a/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/Shaders/Spine-SkeletonGraphic.shader b/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/Shaders/Spine-SkeletonGraphic.shader index 66dd907a2..2993e815a 100644 --- a/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/Shaders/Spine-SkeletonGraphic.shader +++ b/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/Shaders/Spine-SkeletonGraphic.shader @@ -91,7 +91,7 @@ Shader "Spine/SkeletonGraphic (Premultiply Alpha)" OUT.vertex.xy += (_ScreenParams.zw-1.0) * float2(-1,1); #endif - OUT.color = IN.color * _Color; + OUT.color = IN.color * float4(_Color.rgb * _Color.a, _Color.a); // Combine a PMA version of _Color with vertexColor. return OUT; } @@ -112,4 +112,4 @@ Shader "Spine/SkeletonGraphic (Premultiply Alpha)" ENDCG } } -} \ No newline at end of file +}