UEC++ 资源加载(三)异步加载
异步加载
FStreamableManager
FSreamableManager可以帮助我们构建异步处理逻辑,用来将加载逻辑与游戏主逻辑进行,以达到高效加载资源的目的。建议FSreamableManager创建在全局游戏的单例对象中,结合FSoftObjectPath进行加载。 FSreamableManager支持异步加载的同时也支持同步加载。
FSreamableManager创建:
1 | // 构建为栈对象,需要引入头文件,不要构建为堆对象 |
FSoftObjectPath同步加载:
同步加载与之前使用的TryLoad基本一致
头文件:
1 | UPROPERTY(EditAnywhere) |
注意头文件引入头文件需要在 #include “TestGameInstance.generated.h” 头文件上面既 #include “TestGameInstance.generated.h” 必须是最后一个引入的头文件
cpp文件:
1 | // FSoftObjectPath 通过蓝图的细节面板拾取 |
FSoftObjectPath异步加载:
异步加载需要设置回调通知对象与通知函数
在上述同步加载的头文件基础上添加一个回调函数:
1 | // 异步加载回调函数 |
然后在初始化函数中,绑定回调函数,我使用的 GameInstance 类 所以这行代码写在 Init 中,一般Actor类,写在BeginPlay 中
1 | // FSoftObjectPath 通过蓝图的细节面板拾取 |
实现回调函数:
1 | void UTestGameInstance::LoadSourceCallback() |
加载的路径同同步加载一样通过 FSoftObjectPath 在蓝图的细节面板中指定
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 易锦风的博客!
评论






