From ac584755393d87bda2e80d9653370b7e4c68912f Mon Sep 17 00:00:00 2001 From: mob-sakai Date: Sat, 23 Dec 2023 14:29:44 +0900 Subject: [PATCH] fix: incorrect rendering of world-space simulated particles while animating scale close #285 --- Scripts/UIParticleRenderer.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Scripts/UIParticleRenderer.cs b/Scripts/UIParticleRenderer.cs index c3381a6..36f8659 100644 --- a/Scripts/UIParticleRenderer.cs +++ b/Scripts/UIParticleRenderer.cs @@ -32,6 +32,7 @@ namespace Coffee.UIExtensions private Vector3 _prevPsPos; private Vector3 _prevScale; private Vector2Int _prevScreenSize; + private float _prevCanvasScale; private bool _prewarm; private ParticleSystemRenderer _renderer; @@ -246,6 +247,7 @@ namespace Coffee.UIExtensions _prevScale = GetWorldScale(); _prevPsPos = _particleSystem.transform.position; _prevScreenSize = new Vector2Int(Screen.width, Screen.height); + _prevCanvasScale = canvas ? canvas.scaleFactor : 1f; _delay = true; _prevParticleCount = 0; @@ -534,7 +536,8 @@ namespace Coffee.UIExtensions { var screenSize = new Vector2Int(Screen.width, Screen.height); var isWorldSpace = _particleSystem.IsWorldSpace(); - var resolutionChanged = _prevScreenSize != screenSize || _prevScale != scale; + var canvasScale = _parent.canvas ? _parent.canvas.scaleFactor : 1f; + var resolutionChanged = _prevScreenSize != screenSize || _prevCanvasScale != canvasScale; if (resolutionChanged && isWorldSpace) { // Update particle array size and get particles. @@ -563,6 +566,7 @@ namespace Coffee.UIExtensions _prevPsPos = psPos; } + _prevCanvasScale = canvas ? canvas.scaleFactor : 1f; _prevScreenSize = screenSize; }