这篇博客介绍了UE4中的Asset Manager相关的内容,大部分参考的是Fortnite的公开资料。
背景(题外话)
如果不出意外的话,未来的一段时间将要回归UE4的全职开发了。用了将近9个月的unity,或多或少能感受到这两款商业引擎的设计理念的差异,也开阔了不少思路。在使用Unity 5的过程中发现它的Asset Management做的很不错,回想起来当初用UE4做Console的时候也没有遇到过这种需求 —— 不过这个功能在移动端应该是很常用的需求,因此也做个记录吧……
涉及到的类
- Assest
Asset
指的是在Content Browser
中看到的那些物件。贴图,BP,音频和地图等都属于Asset. - Asset Registry
Asset Registry
是资源注册表,其中存储了每个特定的asset的有用的信息。这些信息会在asset被储存的时候进行更新。 - Streamable Managers
Streamable Managers
负责进行读取物件并将其放在内存中。 - Primary Assets
Primary Assets
指的是在游戏中可以进行手动载入/释放的东西。包括地图文件以及一些游戏相关的物件,例如character classs或者inventory items. - Secondary Assets
Secondary Assets
指的是其他的那些Assets了,例如贴图和声音等。这一类型的assets是根据Primary Assets
来自动进行载入的。 - Asset Bundle
Asset Bundle
是一个Asset的列表,用于将一堆Asset在runtime的时候载入。 - Asset Manager
Asset Manager
是一个可选的全局单例类,用于管理primary assets
和asset bundles
,这些东西在runtime的时候很有用。
Primary Assets
Primary Asset
指的是可以针对于UObject::GetPrimaryAssetId()
返回一个有效的值的UObject
。