-
Notifications
You must be signed in to change notification settings - Fork 0
03 Widget Configuration
starTechnology1994 edited this page Aug 7, 2026
·
1 revision
本章完整列出 WebNative Browser 控件(UMG Widget)的全部公开参数、事件与函数,并说明推荐的配置组合。
图 3-1 WebNative Browser 控件 Details 参数总览
所有参数按 WebNative | Page / Rendering / Input / Message 分类组织,以下逐项说明。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
InitialURL |
FString | https://www.bilibili.com |
初始加载 URL,可为 http(s) 地址、本地资源路径或file://
|
ViewSize |
FIntPoint | (1280, 720) |
固定分辨率模式下 CEF 浏览器视图尺寸(≥1) |
bAutoResizeToWidget |
bool | true |
自动跟随 Widget 屏幕尺寸调整视图分辨率 |
说明:
-
bAutoResizeToWidget = true时,浏览器分辨率跟随控件实际大小,适合大多数 UI 场景。 - 需要固定渲染分辨率(如保证 4K 截图质量或控制开销)时:关闭自动缩放,设置
ViewSize,运行期可用SetViewResolution(FIntPoint)动态修改。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
FrameRate |
int32 | 60 |
帧率上限(1~120) |
bUseGpuAcceleratedRendering |
bool | true |
是否启用 GPU 加速渲染 |
bAllowCpuRenderFallback |
bool | true |
GPU 失败时是否回退 CPU 软渲染(仅 GPU 开启时生效) |
说明:
-
FrameRate与智能帧率调节配合:页面静止时自动暂停渲染,动画/视频按需唤醒,实际开销远低于"固定 60 帧"。 - 国产 GPU 或虚拟机等环境若出现渲染异常,可关闭 GPU 加速(或通过 06-CEF 参数配置 的
offgpu全局关闭)。 -
bAllowCpuRenderFallback建议保持true,保证极端环境下页面仍可显示。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
bAcceptsInput |
bool | true |
是否接收键盘焦点 |
bAutoFocusOnMouseDown |
bool | true |
鼠标点击时自动聚焦网页 |
bEnableMouseTransparency |
bool | true |
启用鼠标穿透(按页面 alpha 命中测试) |
MouseTransparencyAlphaThreshold |
int32 | 0 |
透明像素判定阈值(0~255),像素 alpha 低于该值视为透明,鼠标点击穿透到 UE |
MouseTransparencyMaskBlockSize |
int32 | 1 |
alpha 命中测试的像素块大小(1~8) |
bForwardUEKeyEvents |
bool | false |
开启后,即使焦点在 UE 场景中,键盘事件也会转发给 CEF(用于撤销/重做等需要双重处理的场景) |
说明:
-
鼠标穿透:当页面存在透明区域(如镂空控件、透明 PNG)时,开启
bEnableMouseTransparency可让鼠标事件穿透到 UE 场景;阈值默认0表示仅完全透明处穿透。 -
bForwardUEKeyEvents典型场景:网页内文本编辑器与 UE 场景同时需要处理 Ctrl+Z/Ctrl+C 等快捷键。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
MessageDispatchBudgetPerFrame |
int32 | 5000 |
每帧 JS → UE 消息派发预算(条数,1~100000) |
说明:
- 该参数防止网页高频消息(如每秒千条状态流)压垮游戏线程。
- 消息超过预算的部分会在后续帧继续派发,不会丢失;业务仍应遵循 02-双向通讯 的"发送变化量"建议。
| 事件 | 签名 | 触发时机 |
|---|---|---|
OnMessageReceived |
(FString FunctionName, FString MessageBody) |
网页WebNative.send() 调用时 |
OnLoadStateChanged |
(bool bIsLoading, bool bCanGoBack, bool bCanGoForward) |
页面加载状态变化时 |
OnUrlChanged |
(FString URL) |
当前 URL 变化时 |
OnBeforePopup |
(FString TargetURL, FString TargetFrameName) |
页面请求打开新窗口时(可在此拦截并改为当前页加载) |
OnLoadEnd |
(FString URL, int32 HttpStatusCode) |
页面加载结束时(含 HTTP 状态码) |
| 函数 | 参数 | 说明 |
|---|---|---|
LoadURL |
FString URL |
加载指定 URL |
GoBack / GoForward
|
— | 后退 / 前进 |
Reload |
bool bIgnoreCache = false |
刷新页面,可选忽略缓存 |
ExecuteJavaScript |
FString Script |
在页面执行任意 JS 代码 |
SendMessageToJS |
FString FunctionName, FString MessageBody |
向网页发送消息(网页侧 WebNative.on 接收) |
SetFocusToGameViewport |
— | 将输入焦点从页面切回 UE 游戏视口WebNative原生实现(拖拽放置场景用) |
GetRawPlatformCursorPos |
out FVector2D OutScreenPos |
获取平台光标的屏幕坐标,能拿到最顶层的鼠标位置,不受界面影响,返回是否有效 |
DeprojectCursorToWorld |
FVector2D ScreenPos, out FVector OutWorldPos, out FVector OutWorldDir |
屏幕坐标反投影为世界空间射线,建议优先使用这个进行坐标转化操作 |
SetViewResolution |
FIntPoint NewSize |
设置固定分辨率模式下的视图尺寸 |
SetAutoResizeToWidget |
bool bEnabled |
动态切换自动缩放 |
SetForwardUEKeyEvents |
bool bEnabled |
动态切换键盘事件转发 |
GetViewSize |
— | 返回当前视图尺寸(BlueprintPure) |
ShowDevTools / CloseDevTools / ToggleDevTools
|
— | 打开 / 关闭 / 切换 DevTools 调试窗口 |
- 消息协议设计:02-双向通讯
- ini 全局配置与权限策略:06-CEF 参数配置
- 拖拽/点击放置高级交互:04-高级交互
- 完整 API 参考(含 JS 桥接与 C++ 接口):12-API 参考