Explorar el Código

[unity] Fixed BoneFollower components change Transform scale regardless of settings. Closes #2018.

Harald Csaszar hace 3 años
padre
commit
40f5e2723d

+ 10 - 9
spine-unity/Assets/Spine/Runtime/spine-unity/Components/Following/BoneFollower.cs

@@ -209,15 +209,16 @@ namespace Spine.Unity {
 			}
 
 			Bone parentBone = bone.Parent;
-			Vector3 localScale = new Vector3(1f, 1f, 1f);
-			if (followParentWorldScale && parentBone != null)
-				localScale = new Vector3(parentBone.WorldScaleX, parentBone.WorldScaleY, 1f);
-			if (followLocalScale)
-				localScale.Scale(new Vector3(bone.ScaleX, bone.ScaleY, 1f));
-			if (followSkeletonFlip)
-				localScale.y *= Mathf.Sign(bone.Skeleton.ScaleX * bone.Skeleton.ScaleY) * additionalFlipScale;
-			thisTransform.localScale = localScale;
+			if (followParentWorldScale || followLocalScale || followSkeletonFlip) {
+				Vector3 localScale = new Vector3(1f, 1f, 1f);
+				if (followParentWorldScale && parentBone != null)
+					localScale = new Vector3(parentBone.WorldScaleX, parentBone.WorldScaleY, 1f);
+				if (followLocalScale)
+					localScale.Scale(new Vector3(bone.ScaleX, bone.ScaleY, 1f));
+				if (followSkeletonFlip)
+					localScale.y *= Mathf.Sign(bone.Skeleton.ScaleX * bone.Skeleton.ScaleY) * additionalFlipScale;
+				thisTransform.localScale = localScale;
+			}
 		}
 	}
-
 }

+ 10 - 9
spine-unity/Assets/Spine/Runtime/spine-unity/Components/Following/BoneFollowerGraphic.cs

@@ -188,15 +188,16 @@ namespace Spine.Unity {
 			}
 
 			Bone parentBone = bone.Parent;
-			Vector3 localScale = new Vector3(1f, 1f, 1f);
-			if (followParentWorldScale && parentBone != null)
-				localScale = new Vector3(parentBone.WorldScaleX, parentBone.WorldScaleY, 1f);
-			if (followLocalScale)
-				localScale.Scale(new Vector3(bone.ScaleX, bone.ScaleY, 1f));
-			if (followSkeletonFlip)
-				localScale.y *= Mathf.Sign(bone.Skeleton.ScaleX * bone.Skeleton.ScaleY) * additionalFlipScale;
-			thisTransform.localScale = localScale;
+			if (followParentWorldScale || followLocalScale || followSkeletonFlip) {
+				Vector3 localScale = new Vector3(1f, 1f, 1f);
+				if (followParentWorldScale && parentBone != null)
+					localScale = new Vector3(parentBone.WorldScaleX, parentBone.WorldScaleY, 1f);
+				if (followLocalScale)
+					localScale.Scale(new Vector3(bone.ScaleX, bone.ScaleY, 1f));
+				if (followSkeletonFlip)
+					localScale.y *= Mathf.Sign(bone.Skeleton.ScaleX * bone.Skeleton.ScaleY) * additionalFlipScale;
+				thisTransform.localScale = localScale;
+			}
 		}
-
 	}
 }