feat: added 'autoScalingMode (None, Transform.localScale, UIParticle.scale)' instead of 'autoScaling'

fixed issue when upgrading from 3.x to 4.x
This commit is contained in:
mob-sakai
2023-11-07 11:42:16 +09:00
parent 447996ce0f
commit 107f901fe3
4 changed files with 65 additions and 23 deletions

View File

@@ -182,21 +182,22 @@ namespace Coffee.UIExtensions
if (isUI)
{
var inverseScale = _uiParticle.parentScale.Inverse();
dstPos = dstPos.GetScaled(inverseScale, _uiParticle.scale3D.Inverse());
var scale3d = _uiParticle.scale3DForCalc;
dstPos = dstPos.GetScaled(inverseScale, scale3d.Inverse());
// Relative mode
if (_uiParticle.positionMode == UIParticle.PositionMode.Relative)
{
var diff = _uiParticle.transform.position - psPos;
diff.Scale(_uiParticle.scale3D - inverseScale);
diff.Scale(_uiParticle.scale3D.Inverse());
diff.Scale(scale3d - inverseScale);
diff.Scale(scale3d.Inverse());
dstPos += diff;
}
#if UNITY_EDITOR
if (!Application.isPlaying && !isLocalSpace)
{
dstPos += psPos - psPos.GetScaled(inverseScale, _uiParticle.scale3D.Inverse());
dstPos += psPos - psPos.GetScaled(inverseScale, scale3d.Inverse());
}
#endif
}