Skip to content

UDim2 ​

UDim2 表示二维 UI 的位置或尺寸,由水平方向和垂直方向的比例值与像素偏移组合而成。

概览 ​

UDim2 表示二维 UI 的位置或尺寸,由水平方向和垂直方向的比例值与像素偏移组合而成。

可通过 UDim2.New(xScale, xOffset, yScale, yOffset) 构造

代码示例 ​

构造 UDim2 并读取分量

lua
-- @runtime client
local pos = UDim2.New(0.5, -50, 0.3, 10)
print(string.format('x.Scale=%.2f x.Offset=%d', pos.x.Scale, pos.x.Offset))
print(string.format('y.Scale=%.2f y.Offset=%d', pos.y.Scale, pos.y.Offset))

函数 ​

FromScale ​

签名:FromScale(x: Float, y: Float) -> UDim2

通过指定 X 和 Y 的相对比例创建一个 UDim2 实例,其 Offset 分量均为 0。

参数类型说明
xFloat
yFloat

返回值 UDim2

仅用 Scale 构造 UDim2

lua
-- @runtime client
-- FromScale(scaleX, scaleY) — Offset 为 0
local center = UDim2.FromScale(0.5, 0.5)  -- 屏幕正中
print(string.format('居中: x.Scale=%.1f y.Scale=%.1f', center.x.Scale, center.y.Scale))

FromOffset ​

签名:FromOffset(x: Int, y: Int) -> UDim2

通过指定 X 和 Y 的绝对像素偏移量创建一个 UDim2 实例,其 Scale 分量均为 0。

参数类型说明
xInt
yInt

返回值 UDim2

仅用 Offset 构造 UDim2

lua
-- @runtime client
-- FromOffset(offsetX, offsetY) — Scale 为 0
local fixed = UDim2.FromOffset(100, 200)  -- 固定像素偏移
print(string.format('固定: x.Offset=%d y.Offset=%d', fixed.x.Offset, fixed.y.Offset))

Lerp ​

签名:Lerp(other: UDim2, alpha: Float) -> UDim2

在当前 UDim2 与另一个 UDim2 之间按 alpha 进行线性插值,返回插值结果。

参数类型说明
otherUDim2
alphaFloat

返回值 UDim2

在两个 UDim2 之间插值

lua
-- @runtime client
local start = UDim2.New(0, 0, 0, 0)
local target = UDim2.New(1, 0, 1, 0)
local alpha = 0.5
local lerped = start:Lerp(target, alpha)
print('x.Scale:', lerped.x.Scale, 'x.Offset:', lerped.x.Offset)
print('y.Scale:', lerped.y.Scale, 'y.Offset:', lerped.y.Offset)

属性 ​

名称类型默认值说明
xUDim-获取或设置 X 轴的 UDim 值,包含 Scale 和 Offset 分量。
yUDim-获取或设置 Y 轴的 UDim 值,包含 Scale 和 Offset 分量。
WidthUDim-获取或设置 X 轴的 UDim 值,是 x 属性的别名。
HeightUDim-获取或设置 Y 轴的 UDim 值,是 y 属性的别名。