From 2b30b7de97be6c4a18125be3cd63a5eea1c90674 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Fri, 19 Jan 2024 20:51:14 -0500 Subject: [PATCH] fix spritesheet scaler incorrectly setting pivots --- Assets/Editor/SpritesheetScaler.cs | 9 ++++++--- ...UnitySourceGenerator.Editor.ProjectSettingsData.asset | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Assets/Editor/SpritesheetScaler.cs b/Assets/Editor/SpritesheetScaler.cs index b6562b543..5478405d0 100644 --- a/Assets/Editor/SpritesheetScaler.cs +++ b/Assets/Editor/SpritesheetScaler.cs @@ -77,7 +77,8 @@ public class SpritesheetScaler : EditorWindow for (int i = 0; i < ti1.spritesheet.Length; i++) { SpriteMetaData d = ti1.spritesheet[i]; - Vector2 oldPivot = Rect.NormalizedToPoint(d.rect, d.pivot) * multiplier; + // pivot relative to the origin of the rect in pixels + Vector2 oldPivot = new Vector2(d.pivot.x * d.rect.width, d.pivot.y * d.rect.height); d.rect = ScaleRect(d.rect, multiplier, inflateX, inflateY); d.border.x += d.border.x > 0 ? inflateX : 0; @@ -85,10 +86,12 @@ public class SpritesheetScaler : EditorWindow d.border.z += d.border.z > 0 ? inflateX : 0; d.border.w += d.border.w > 0 ? inflateY : 0; - if (inflateX > 0 || inflateY > 0) + if (d.alignment != (int)SpriteAlignment.Center && (inflateX > 0 || inflateY > 0)) { d.alignment = (int)SpriteAlignment.Custom; - d.pivot = Rect.PointToNormalized(d.rect, oldPivot); + oldPivot += new Vector2(inflateX, inflateY); + Vector2 newPivot = oldPivot * multiplier; + d.pivot = new Vector2(newPivot.x / d.rect.width, newPivot.y / d.rect.height); } d.border *= multiplier; diff --git a/ProjectSettings/SatorImaging.UnitySourceGenerator.Editor.ProjectSettingsData.asset b/ProjectSettings/SatorImaging.UnitySourceGenerator.Editor.ProjectSettingsData.asset index 125bfb106..3fd3d8051 100644 --- a/ProjectSettings/SatorImaging.UnitySourceGenerator.Editor.ProjectSettingsData.asset +++ b/ProjectSettings/SatorImaging.UnitySourceGenerator.Editor.ProjectSettingsData.asset @@ -23,5 +23,6 @@ MonoBehaviour: - Assets/Scripts/Games/Minigame.cs - Assets/Scripts/Games/FanClub/FanClub.cs - Assets/Scripts/GameManager.cs + - Assets/Editor/SpritesheetScaler.cs PathsToSkipImportEvent: [] PathsToIgnoreOverwriteSettingOnAttribute: []