跳到主要内容

自定义 UI 缩放比

游戏基于 UI 设计的角度出发,要求能够更改 LEVEL INFINITE PASS 界面的缩放比例,这里介绍设置方法 SetUICustomScale

注意

目前 LEVEL INFINITE PASS 仅 Unreal Engine 游戏支持调整 UI 缩放比。

LI PASS UI 设计分辨率为:
Android、iOS(横屏):1334x750
Android、iOS(竖屏):750x1334
PC、PS5、XSX:1920x1080
Switch: 1280x720

原理

根据游戏的设计分辨率与 LEVEL INFINITE PASS 的设计分辨率按短边指定一个缩放比,亦 SetUICustomScale 的参数,然后由 Unreal Engine 通过 DPI 缩放曲线适配到不同分辨率的屏幕。

以移动端为例,游戏的设计分辨率通常为 1920x1080,而 LEVEL INFINITE PASS 移动端则为 1336x750:
按短边指定一个缩放比,期望值为 1080/750 = 1.44,因此将 SetUICustomScale 的参数设置为 1.44。

如果业务未调用 SetUICustomScale,LEVEL INFINITE PASS 无法得知游戏的设计分辨率,LEVEL INFINITE PASS 设计分辨率在 DPI 缩放曲线上的缩放值的倒数作为这个指定的缩放比。

因此,LEVEL INFINITE PASS 期望的 DPI 缩放曲线的走势应类似与下图,是个斜率基本固定的直线。游戏的 DPI 缩放曲线走势越接近期望的走势,期望值就越接近在 DPI 缩放曲线中的缩放值的倒数(移动端为 1/750)。

Image: LIPassUEUIScaleRatio

函数定义

UFUNCTION(BlueprintCallable, Category = "LevelInfinite")
static void SetUICustomScale(const float scale);

入参说明

参数类型说明
scalefloatUI 缩放比

代码示例

// set UI custom scale
ULevelInfiniteAPI::SetUICustomScale(1.44f);