跳转到正文
Zhou 的博客
搜索文章
首页/文章

判断UE编辑器场景资产是否准备完成

playerzhou··约 2 分钟

问题

  • UE编辑器在加载完场景里所有Actor后还会异步加载编译各类资产,如Shader,Texture,StaticMesh等,因此如果在资产为准备好时直接对场景进行处理可能会出现错误

资产加载流程

  • 每个类型的资产具有一个管理类单例,该管理类继承自接口IAssetCompilingManager,通过该管理类进行编译加载
  • 资产在加载状态更新后会调用管理类的接口进行通知,管理类会更新该类资产的加载信息,并通知到NotificationUI组件上,从而使用户能够从编辑器上获取加载信息

获取当前加载情况

  • IAssetCompilingManager接口不属于UObject,因此无法通过反射获取到所有IAssetCompilingManager类,但是这些管理类会注册至单例FAssetCompilingManager上,UE则是通过遍历在FAssetCompilingManager注册的所有IAssetCompilingManager对象来管理所有IAssetCompilingManager
  • FAssetCompilingManager提供了接口GetNumRemainingAssets()来获取剩余待编译的资产数目,因此可以通过FAssetCompilingManager::Get().GetNumRemainingAssets() == 0来判断所有资产是否都准备完成

感谢阅读

漂流瓶留言 0

留下一只漂流瓶

邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据。

背景音乐DANA

准备播放

歌单与设置
0:00

DANA / イースVIII -Lacrimosa of DANA- オリジナルサウンドトラック [完全版] / Copyright © Nihon Falcom Corporation

音乐使用规范 ↗

你好,欢迎来访。

丹娜 · Iclucian
↑