evannik23

Thing

May 19th, 2022
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.93 KB | None | 0 0
  1. local SizePosScaler = {}
  2. SizePosScaler.__index = SizePosScaler
  3.  
  4.  
  5. --Position Functions
  6. function SizePosScaler.ToOffsetPos(guiobject)
  7.     if guiobject:isA("GuiBase2d") and guiobject.Parent then
  8.         game:GetService( 'RunService' ).RenderStepped:Wait()
  9.         local OffsetXPos = guiobject.Position.X.Scale*guiobject.Parent.AbsoluteSize.X + guiobject.Position.X.Offset
  10.         local OffsetYPos = guiobject.Position.Y.Scale*guiobject.Parent.AbsoluteSize.Y + guiobject.Position.Y.Offset
  11.         guiobject.Position = UDim2.new(0, OffsetXPos, 0, OffsetYPos)
  12.     end
  13. end
  14.  
  15. function SizePosScaler.ToScalePos(guiobject)
  16.     if guiobject:IsA("GuiBase2d") then
  17.     game:GetService( 'RunService' ).RenderStepped:Wait()
  18.     local Viewport_Size
  19.  
  20.     if guiobject:FindFirstAncestorWhichIsA("GuiBase2d") then
  21.         Viewport_Size = guiobject:FindFirstAncestorWhichIsA("GuiBase2d").AbsoluteSize
  22.     else
  23.         Viewport_Size = workspace.CurrentCamera.ViewportSize
  24.     end
  25.  
  26.     local LB_Pos = guiobject.AbsolutePosition
  27.     guiobject.Position = UDim2.new(LB_Pos.X/Viewport_Size.X,0,LB_Pos.Y/Viewport_Size.Y, 0)
  28.     end
  29. end
  30.  
  31. --Size Functions
  32. function SizePosScaler.ToOffsetSize(guiobject)
  33.     if guiobject:IsA("GuiBase2d") then
  34.     game:GetService( 'RunService' ).RenderStepped:Wait()
  35.     local LB_Size = guiobject.AbsoluteSize
  36.     guiobject.Size = UDim2.new(0, LB_Size.X, 0, LB_Size.Y)
  37.     end
  38. end
  39.  
  40. function SizePosScaler.ToScaleSize(guiobject)
  41.     if guiobject:IsA("GuiBase2d") then
  42.     game:GetService( 'RunService' ).RenderStepped:Wait()
  43.     local Viewport_Size
  44.  
  45.     if guiobject.Parent:IsA("GuiBase2d") then
  46.         Viewport_Size = guiobject.Parent.AbsoluteSize
  47.     elseif guiobject:FindFirstAncestorWhichIsA("GuiBase2d") then
  48.         Viewport_Size = guiobject:FindFirstAncestorWhichIsA("GuiBase2d").AbsoluteSize
  49.     else
  50.         Viewport_Size = workspace.CurrentCamera.ViewportSize
  51.     end
  52.  
  53.     local LB_Size = guiobject.AbsoluteSize
  54.     guiobject.Size = UDim2.new(LB_Size.X/Viewport_Size.X,0,LB_Size.Y/Viewport_Size.Y, 0)
  55.     end
  56. end
  57.  
  58.  
  59.  
  60. return SizePosScaler
  61.  
Advertisement
Add Comment
Please, Sign In to add comment