Răsfoiți Sursa

[unity] Fixed incorrect rendering when `CanvasGroup compatible` is enabled on `SkeletonGraphic TintBlack` shader. Closes #1908.

Harald Csaszar 4 ani în urmă
părinte
comite
43565f197d

+ 5 - 1
spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/MeshGenerator.cs

@@ -566,7 +566,8 @@ namespace Spine.Unity {
 
 				float tintBlackAlpha = 1.0f;
 				if (pmaVertexColors) {
-					color.a = (byte)(skeletonA * slot.a * c.a * 255);
+					float colorA = skeletonA * slot.a * c.a;
+					color.a = (byte)(colorA * 255);
 					color.r = (byte)(skeletonR * slot.r * c.r * color.a);
 					color.g = (byte)(skeletonG * slot.g * c.g * color.a);
 					color.b = (byte)(skeletonB * slot.b * c.b * color.a);
@@ -576,6 +577,9 @@ namespace Spine.Unity {
 						else
 							color.a = 0;
 					}
+					else if (canvasGroupTintBlack) { // other blend modes
+						tintBlackAlpha = colorA;
+					}
 				} else {
 					color.a = (byte)(skeletonA * slot.a * c.a * 255);
 					color.r = (byte)(skeletonR * slot.r * c.r * 255);