From b1fe837e8ad9b391a151738685ebe01ffd3f8f9e Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Wed, 17 Jul 2024 18:24:59 +0200 Subject: [PATCH] [unity] Fixed SkeletonGraphic MatchRectTransformWithBounds wrong scale with layoutScaleMode. Closes #2577. --- .../Runtime/spine-unity/Components/SkeletonGraphic.cs | 8 +++++--- spine-unity/Assets/Spine/package.json | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs index 82b49e147..9c88ff382 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs @@ -93,6 +93,7 @@ namespace Spine.Unity { /// Offset relative to the pivot position, before potential layout scale is applied. [SerializeField] protected Vector2 pivotOffset = Vector2.zero; [SerializeField] protected float referenceScale = 1f; + [SerializeField] protected float layoutScale = 1f; #if UNITY_EDITOR protected LayoutMode previousLayoutScaleMode = LayoutMode.None; [SerializeField] protected Vector2 rectTransformSize = Vector2.zero; @@ -742,8 +743,9 @@ namespace Spine.Unity { SetRectTransformSize(submeshGraphic, size); submeshGraphic.rectTransform.pivot = p; } - this.referenceSize = size; + referenceScale = referenceScale * layoutScale; + layoutScale = 1f; } public static void SetRectTransformSize (Graphic target, Vector2 size) { @@ -943,7 +945,7 @@ namespace Spine.Unity { meshScale = (canvas == null) ? 100 : canvas.referencePixelsPerUnit; if (layoutScaleMode != LayoutMode.None) { meshScale *= referenceScale; - float layoutScale = GetLayoutScale(layoutScaleMode); + layoutScale = GetLayoutScale(layoutScaleMode); if (!EditReferenceRect) { meshScale *= layoutScale; } @@ -1043,7 +1045,7 @@ namespace Spine.Unity { meshScale = (canvas == null) ? 100 : canvas.referencePixelsPerUnit; if (layoutScaleMode != LayoutMode.None) { meshScale *= referenceScale; - float layoutScale = GetLayoutScale(layoutScaleMode); + layoutScale = GetLayoutScale(layoutScaleMode); if (!EditReferenceRect) { meshScale *= layoutScale; } diff --git a/spine-unity/Assets/Spine/package.json b/spine-unity/Assets/Spine/package.json index 4e722c65b..07004553a 100644 --- a/spine-unity/Assets/Spine/package.json +++ b/spine-unity/Assets/Spine/package.json @@ -2,7 +2,7 @@ "name": "com.esotericsoftware.spine.spine-unity", "displayName": "spine-unity Runtime", "description": "This plugin provides the spine-unity runtime core.", - "version": "4.2.78", + "version": "4.2.79", "unity": "2018.3", "author": { "name": "Esoteric Software",