Эх сурвалжийг харах

[unity] Fixed Sprite.ToAtlasRegion and SpriteAttacher example script ignoring pivot in 4.1. Closes #2109. Issue was introduced in commit 9ecf28b, see #1884.

Harald Csaszar 3 жил өмнө
parent
commit
766105189f

+ 6 - 2
spine-unity/Assets/Spine/Runtime/spine-unity/Utility/AtlasUtilities.cs

@@ -193,6 +193,10 @@ namespace Spine.Unity.AttachmentTools {
 			region.index = -1;
 			region.degrees = s.packed && s.packingRotation != SpritePackingRotation.None ? 90 : 0;
 
+			// World space units
+			Bounds bounds = s.bounds;
+			Vector2 boundsMin = bounds.min, boundsMax = bounds.max;
+
 			// Texture space/pixel units
 			Rect spineRect = s.textureRect.SpineUnityFlipRect(s.texture.height);
 			Rect originalRect = s.rect;
@@ -200,8 +204,8 @@ namespace Spine.Unity.AttachmentTools {
 			region.originalWidth = (int)originalRect.width;
 			region.height = (int)spineRect.height;
 			region.originalHeight = (int)originalRect.height;
-			region.offsetX = s.textureRectOffset.x;
-			region.offsetY = s.textureRectOffset.y;
+			region.offsetX = s.textureRectOffset.x + spineRect.width * (0.5f - InverseLerp(boundsMin.x, boundsMax.x, 0));
+			region.offsetY = s.textureRectOffset.y + spineRect.height * (0.5f - InverseLerp(boundsMin.y, boundsMax.y, 0));
 
 			if (isolatedTexture) {
 				region.u = 0;