开发

利用 Unreal 引擎设置平台开发

更新时间: 2025年10月1日
Unreal 引擎 (UE) 入门指南将向您详细讲解如何设置开发环境和检查用户的权利。
使用平台 SDK 与在其他开发环境中使用 SDK 略有不同。例如,您可以使用 Blueprints 或原生 C++ API 等各种方法调用平台功能。

创建应用

在集成平台 SDK 之前,如果尚未创建应用,您需要在开发者面板中创建一个应用。请参阅创建和管理应用页面来创建应用。

配置开发环境

请查看 Unreal 引擎指南中的 Meta Quest UE 版开发入门。当您能够自如地使用 UE 开发 Meta Quest 应用后,即可实现 Meta Horizon 平台功能。
注意:Meta Horizon 操作系统平台功能已被直接集成到 Unreal 编辑器中。如要查看您正在使用的 Unreal 版本包括哪一版本的平台,请参阅版本兼容性。如要使用最新版本的平台,您可以单独下载

安装平台 SDK 插件

根据您使用的 Unreal 引擎版本选择安装平台 SDK 的方法。

使用 Unreal 引擎 5 的 Epic Launcher 版本

  1. 按照 UE5 文档中安装 Unreal 引擎页面上的说明下载并安装 UE5。
  2. 下载用于 UE5 的平台 SDK 插件 .zip 文件。
  3. 将 .zip 文件内容解压到以下 UE5 安装文件夹:\Engine\Plugins\Marketplace\MetaXRPlatform。例如:C:\Program Files\Epic Games\UE_5.3\Engine\Plugins\Marketplace\MetaXRPlatform
注意: 以上说明适用于 Unreal 引擎 5。对于 Unreal 引擎 4,请参阅下面有关使用 GitHub 分叉的部分。

使用 Unreal 引擎 4 或 5 的 GitHub 副本

安装 Unreal 引擎的 GitHub Meta 副本,其中包含平台 SDK。

启用平台 SDK 插件

  1. 在编辑器中,选择编辑 > 插件 > 在线平台 > Meta XR 平台,然后选中启用。编辑器会提示您重新启动 Unreal 编辑器。
  2. 调整您的 DefaultEngine.ini 文件以使用 Meta Quest(如有需要,请在 [ProjectDirectory]/Config/ 下创建 DefaultEngine.ini):
[OnlineSubsystemOculus]
bEnabled=true
OculusAppId=[app_id_here]
RiftAppId=[rift app id here]
OculusAppId 是您从 Meta Horizon 开发者面板的 API 页面获取的唯一应用编号。
RiftAppId 是创建 Meta Quest 设备应用时的应用编号。这个编号与 OculusAppId 不同。
如果启用 Meta XR 平台插件,您的应用将需要访问用户编号和用户主页,并且在提交应用至 Meta Horizon 商店的过程中,应用需要接受数据使用情况检查。如需了解详情,请参阅完成数据使用情况检查

为本地开发配置应用

本部分中的配置步骤让开发者可在开发过程中运行应用程序的本地编译版本。这个流程是必需的,否则应用的本地版本将无法通过您将在以下步骤中集成的权限检查。
  1. 将用户添加到您的团队。如需了解有关管理团队的信息,请参阅管理团队和用户
  2. 如果某些开发者不属于应用程序的团队,而他们又需要在正常安装目录之外运行应用程序,请将 AllowDevSideloaded 注册表项作为 DWORD(1) 添加至位于 HKLM\SOFTWARE\Wow6432Node\Oculus\Oculus 的注册表文件夹。这并不能绕过有效权限验证,而只是绕过目录检查。
完成上述步骤后,当运行应用程序的本地编译版本时,权利检查便会成功执行。

使用 Meta XR 平台 SDK

1.创建 GameInstance

您的项目可能业已设好一个自定义 GameInstance 来支持应用程序。如果没有,则必须添加实例并确保项目使用它。在项目设置地图和模式部分,点击 + 号创建一个新 Blueprint。
Epic Games Launcher
在“项目设置”>“地图和模式”>“游戏实例”中创建新的游戏实例类,并将其分配给项目
Epic Games Launcher
完成后,将出现空白的 Blueprint 编辑器。

2.启动系统

您必须启用 Meta XR 平台来处理消息和生成事件。子系统运行后,您只能调用平台节点。
初始化平台子系统会引发一个事件,指示进程成功还是失败。如要响应此事件,请在 GameInstance Blueprint 中创建名为 OvrPlatformSubsystemStarted 的自定义事件,并将执行引脚附加到节点,以处理子系统初始化的成功或失败。自定义事件名称必须与 OvrPlatformSubsystemStarted 完全一致,且位于 GameInstance Blueprint 中。
Epic Games Launcher
创建自定义 OvrPlatformSubsystemStarted 事件。
Epic Games Launcher
添加 OvrPlatformReady 变量。
Epic Games Launcher

3.处理事件

上文所述的消息泵会在应用程序运行时引发您可能感兴趣的事件。您应将事件处理程序与您关心的每个事件绑定。
如要响应这些事件,请创建自定义事件节点并将其连接到绑定的事件节点。您必须在启动消息泵之前完成这项工作。
Epic Games Launcher
部分事件包括:
  • 滥用举报按钮已按下
  • 应用程序生命周期启动时 Intent 已更改
  • 素材文件下载更新
  • 已发送组队模拟邀请、已收到加入意向、已收到退出意向
  • 直播状态更改
  • 网络同步会话和连接状态更改
  • VOIP 系统状态和麦克风可用性更改

4.启动消息泵

启动消息泵,以开始处理消息和生成事件 Epic Games Launcher

高级:异步平台初始化

默认的初始化路径会在平台 SDK 工作时阻塞。虽然我们一直在努力缩短初始化时间,但这项操作可能需要几秒钟才能完成。您可以选择使用平台 SDK 的异步启动路径,但代价是复杂性增加。这样做有助于缩短应用启动时间和开发迭代时间。
流程与上文描述的标准同步路径大致相同。不同之处在于,初始化在启动消息泵之前不会开始,而游戏实例子类的 OvrPlatformSubsystemStarted 自定义事件在初始化尝试完成后才会被调用(因此也是在消息泵启动后才会开始)。
如要选择异步启动路径,请在用于启用平台 SDK 插件的 [OnlineSubsystemOculus]DefaultEngine.ini 块中添加 DoAsyncInit=true 行。

检查权利

当用户启动应用时,您必须做的第一件事是验证他们是否拥有应用的合法副本。
有关如何检查用户权利的说明,请参阅权利检查

测试

在测试平台 SDK 功能之前,您必须将应用的交付版本上传到开发者中心。您只需上传一次,然后便可在本地进行测试和更改,而无需重新上传。请参阅上传用于 Meta Quest 的应用

Unreal 引擎的特定设置

  • 签署您的应用。请参阅移动应用签署 Unreal 子版块。
  • 在编辑器的编辑 > 项目设置 > 平台 > Android 下修改以下设置
    • Android 软件包名称:此名称应与开发者中心的设置相匹配
    • 商店版本:每次上传 apk 都需要一个唯一的商店版本编号,该编号可以是您手动增加的数字。请参阅上文的测试部分。
    • 安装位置:自动
    • 请确保已正确设置应用签署设置。请参阅上文的签署您的应用部分。

总结

平台 SDK 提供各种有用的 Blueprint 功能和事件。此处的列表列出了部分可供您探索的类别:
Epic Games Launcher
如果您想查看利用了许多常用功能的实际应用程序,请参阅 GitHub 上的共享空间示例。