Currently it is extremly annoying to use UIScale
it doesnt really do the job i want and the only alternative that i have right now is doing it the hard and annoying way (it really frustrates me)
to tween a object by 5 pixels both on X and Y axis i have to manually tween it by adding both udim2’s and making sure i have a copy of the original size to then tween it back
this is seriously annoying, makes my code longer and its just wasting my time even though a solution would be simple
my suggestion to fix this problem that probably other developers have is removing UIScale
and adding UISizeAdjustment instance
it has a field called
AdjustmentType : Enum.UISizeAdjustmentType
Which can be: Scale (does exacly what UIScale would do) and Adjust
when Scale is chosen 1 field appears
Scale : number
when Adjust is chosen 2 field appears
ScaleAdjustment : UDim
OffsetAdjustment: UDim
ScaleAdjustment Adds values from UDim to their respective entries in UDim2 Scale
OffsetAdjustment Adds values from UDim to their respective entries in UDim2 Offset
this would greatly improve work efficiency, clean up code, and this change can be done automatically converting all UIScale instances into UISizeAdjustment set to Scale and any instance.new with UIScale just getting converted to instance.new with UISizeAdjustment
UISizeAdjustment has AdjustmentType defaulted to Scale for compability with Older UIScale code however we will now have the benifits of Adjust
UISizeAdjustment adds the values after everything was applied to the ui instance
UISizeAdjustment can also help fix issues UIScale has with Rectangles that have very big differences in X and Y Size where scaling it by x1.025 makes X scale very wide and Y scale very small, original UIScale really only works good on Square elements, having the option to use Adjust to manually specify scale ups without having to keep original frame size is great it also lets us scale elements that have size modified by something like a UIGridLayout easier without needing excessive frames
Old way
local OriginalSize = Frame.Size
TweenService:Create(Frame, TweenInfo.new(1, ...yea yea), {
Size = OriginalSize + UDim2.new(0, 5, 0, 5)
}):Play()
task.wait(1)
TweenService:Create(Frame, TweenInfo.new(1, ...yea yea), {
Size = OriginalSize
}):Play()
ofc the code above wouldnt even work with UIGridLayout where UIScale works
with UISizeAdjustment
local Adjust = Instance.new("UISizeAdjustment", Frame)
Adjust.AdjustmentType = Enum.UISizeAdjustmentType.Adjust
TweenService:Create(Adjust , TweenInfo.new(1, ...yea yea), {
OffsetAdjustment = UDim.new(5, 5)
}):Play()
task.wait(1)
TweenService:Create(Adjust , TweenInfo.new(1, ...yea yea), {
OffsetAdjustment = UDim.new(0, 0)
}):Play()
not only it avoids having a original Size variable, this will also work with elements modified by UIGridLayout where the old method wouldnt even work and u would be forced to either use UIScale or use UIListLayout and need to have variables that keep original sizes somewhere which becomes a annoying issue with automated code on massive scale where devs would just use UIScale instead and cope with it scaling rectangles with big ratios wierdly
ofc i might have went overboard with removing UIScale entirely and replacing it with this however i also wouldnt see the reason to keep UIScale with UISizeAdjustment Around that can have a Scale option too and having UISizeAdjustment not have the Scale feature would seem wierd for me
However i would also not mind if UISizeAdjustment perks were just added onto the existing UIScale since i would prefer having the benifits over being angry something has a different name that doesnt really matter in the first place because my players wont see the name difference but they will ABSOLUTELY see the UIScale scaling my rectangles wierdly
i hope this feature will be considered to be added, i really want this and it would greatly make my work easier and less annoying im very suprised this wasnt added in the first place with uiscale and i couldnt find any post asking for something like this to be added so im here now requesting this.
i hope my fellow programmers or ui designers also tell their opinions on this because in my opinion this addition shouldve been here from the start