Explorar el Código

[csharp] Port of commit d769c1a: Fixed noRotationOrReflection with skeleton scale.

Harald Csaszar hace 1 año
padre
commit
c9c6b98211
Se han modificado 2 ficheros con 8 adiciones y 8 borrados
  1. 7 7
      spine-csharp/src/Bone.cs
  2. 1 1
      spine-csharp/src/package.json

+ 7 - 7
spine-csharp/src/Bone.cs

@@ -221,11 +221,12 @@ namespace Spine {
 				break;
 			}
 			case Inherit.NoRotationOrReflection: {
+				float sx = 1 / skeleton.scaleX, sy = 1 / skeleton.ScaleY;
+				pa *= sx;
+				pc *= sy;
 				float s = pa * pa + pc * pc, prx;
 				if (s > 0.0001f) {
-					s = Math.Abs(pa * pd - pb * pc) / s;
-					pa /= skeleton.scaleX;
-					pc /= skeleton.ScaleY;
+					s = Math.Abs(pa * pd * sy - pb * sx * pc) / s;
 					pb = pc * s;
 					pd = pa * s;
 					prx = MathUtils.Atan2Deg(pc, pa);
@@ -334,10 +335,9 @@ namespace Spine {
 				switch (inherit) {
 				case Inherit.NoRotationOrReflection: {
 					float s = Math.Abs(pa * pd - pb * pc) / (pa * pa + pc * pc);
-					float sa = pa / skeleton.scaleX;
-					float sc = pc / skeleton.ScaleY;
-					pb = -sc * s * skeleton.scaleX;
-					pd = sa * s * skeleton.ScaleY;
+					float skeletonScaleY = skeleton.ScaleY;
+					pb = -pc * skeleton.scaleX * s / skeletonScaleY;
+					pd = pa * skeletonScaleY * s / skeleton.scaleX;
 					pid = 1 / (pa * pd - pb * pc);
 					ia = pd * pid;
 					ib = pb * pid;

+ 1 - 1
spine-csharp/src/package.json

@@ -2,7 +2,7 @@
 	"name": "com.esotericsoftware.spine.spine-csharp",
 	"displayName": "spine-csharp Runtime",
 	"description": "This plugin provides the spine-csharp core runtime.",
-	"version": "4.2.29",
+	"version": "4.2.30",
 	"unity": "2018.3",
 	"author": {
 		"name": "Esoteric Software",