跳转至

在 Overlay UI 引擎中显示

概述

在 UI 引擎中输出覆盖层的功能,可通过游戏引擎的 UI 系统将 SDK 提供的覆盖层显示在屏幕上。该功能使用 Chromium Embedded Framework(CEF) 的 OSR(Off-Screen Rendering) 屏幕数据。Hive SDK 会将这些数据传递到游戏引擎 UI 以显示覆盖层。这种方式有助于在 Windows 环境中将覆盖层稳定地输出到游戏画面上。此功能在 Hive SDK Unity Windows 和 Hive SDK Unreal Windows 中受支持。

使用方法

  1. 在 hive_config.xml 中将 engineOsrRenderEnabled 值设置为 true。
  2. 如果在已安装 Hive SDK 的状态下更改了设置,请重新构建包含 SDK 的游戏包。如果不重新构建游戏,更改后的设置将不会生效。
  3. 构建完成后运行游戏时,会按如下方式工作:
    • Hive SDK Unreal Windows:自动查找当前游戏世界(Game World),并将 Hive SDK UI 覆盖层直接渲染到游戏画面上方。
    • Hive SDK Unity Windows:将 Hive SDK UI 覆盖层直接渲染到游戏画面上方。


Unreal Engine:直接指定 World 输出覆盖层

Hive SDK Unreal Windows 默认会自动检测当前游戏世界,并渲染 SDK UI 覆盖层。

但是,如果 Unreal Engine 项目使用多 World,或在特殊环境中输出覆盖层,SDK 可能无法自动决定要显示覆盖层的 World。在这种环境中,必须调用 SetTargetWorld() 方法并直接传递目标 World 对象。

  • 返回自动选择: 传递 nullptr 后,会切换回默认行为,即 World 自动选择模式。
  • 关卡切换时的处理: 如果指定的 World 被销毁,SDK 会自动返回当前激活的 World,因此每次切换关卡时无需重新调用该方法。
#include "HIVESDK.h"

void AMyPlayerController::BeginPlay()
{
    Super::BeginPlay();

    FHiveOverlay::SetTargetWorld(GetWorld());
}