异步加载Cue表

概述

本节介绍如何异步加载 Atom Cue Sheet 资源以及该资源中的原始 ACB 数据。

criware_ue4_async_acb_loading_methodCue表异步加载方法

蓝图

  • (1) 使用 Async Load Asset 节点异步加载任何 Atom Cue Sheet 资源
  • (2) 使用 Load Atom Cue Sheet 节点异步加载资源中的原始 ACB 数据
  • (3) 等待 Atom Cue Sheet 资源的 Is Loaded 节点返回 True
criware_ue4_035_async_acb_load_j.png

C++

  • (1) 使用 FStreamableManager 异步加载任何 Atom Cue Sheet 资源
  • (2) 将任何函数注册到 USoundAtomCueSheet::OnLoadCompleted 委托
  • (3) 使用 USoundAtomCueSheet::LoadAtomCueSheet 函数异步加载资源中的原始 ACB 数据
  • (4) 等待 USoundAtomCueSheet::OnLoadCompleted 委托触发

(1) 异步加载Atom Cue Sheet资源

使用 FStreamableManager 异步加载任何 Atom Cue Sheet 资源的示例代码如下所示。
void AAtom120_CueSheetManager::LoadAsync(FSoftObjectPath PathForCueSheet)
{
FStreamableManager& Streamable = UAssetManager::GetStreamableManager();
StreamHnForCueSheet = Streamable.RequestAsyncLoad(
PathForCueSheet,
FStreamableDelegate::CreateUObject(this, &AAtom120_CueSheetManager::OnCueSheetAssetLoadCompleted));
}

(2) 将任何函数注册到 OnLoadCompleted 委托

将任何函数注册到 USoundAtomCueSheet::OnLoadCompleted 委托的示例代码如下所示。
/* CueSheet 的类型为 USoundAtomCueSheet* */
CueSheet->OnLoadCompleted.AddUObject(this, &AAtom120_CueSheetManager::OnCueSheetLoadCompleted);

(3) 异步加载原始 ACB 数据

下面显示了使用 USoundAtomCueSheet::LoadAtomCueSheet 函数异步加载该资源中的原始 ACB 数据的示例代码。
/* CueSheet 的类型为 USoundAtomCueSheet* */
USoundAtomCueSheet::LoadAtomCueSheet(CueSheet, false);

(4) 等待 OnLoadCompleted 委托触发

执行步骤 3 后,等待 USoundAtomCueSheet::OnLoadCompleted 委托触发。
当异步加载过程完成时,无论成功还是失败,都会调用“步骤2中注册的函数”。
要检查成功/失败,请检查 USoundAtomCueSheet::GetAcbHn 函数的返回值。
  • nullptr ...失败
  • 除了 nullptr ...成功

示例地图和示例代码信息

此 SDK 包含Cue表的异步加载示例(C++),因此请参考它。
-示例地图
  • cri\UnrealEngine\Sample\UE4Project\Content\ADX2Samples\Atom120_AsyncLoadCueSheet\Atom120_AsyncLoadCueSheet.umap
  • 示例代码
  • cri\UnrealEngine\Sample\UE4Project\Source\CriUE4Sample\ADX2Samples\Atom120_AsyncLoadCueSheet\Atom120_CueSheetManager.h
  • cri\UnrealEngine\Sample\UE4Project\Source\CriUE4Sample\ADX2Samples\Atom120_AsyncLoadCueSheet\Atom120_CueSheetManager.cpp

#备注

注意
如果日志查看“E2008121602: No more resources for binding. (Increase max_binds of CriFsConfig.)”且加载失败,则需要调整工程设置。
将 CriWare 项目设置中的 [最大绑定数] 值设置为大于同时使用的“包含流播放数据的Cue表”的数量。

本页的说明假设您使用的是CRIWARE UE4 Plugin Ver.1.27.11.00 或更高版本。
有关如何使用Ver.1.27.11.00之前的插件的信息,请联系我们的技术支持。