如何评价unreal4.17的Asset manager?
如何评价unreal4.17的Asset manager? 说是产品ready的特性。实际上不是。纯蓝图使用Asset management. 编辑器能读?打包后就不行了?
最后官方告诉我,目前不支持纯蓝图使用。至少打包后的资源异步加载不会出来。 。。。。竟然也有人提这个问题了。
这个AssetManager在4.16 的时候我就注意到了,当时我们的项目版本还是在4.15,而4.15 cooked 文件夹会莫名其妙的丢失uaaset之间的相互引用关系。所以当时一直很苦恼Pak资源包加载的问题。
后来请教了人 解决了挂载UnrealPak.exe的使用、Mount的问题,但是发现load obj只会staticload obj,比较麻烦,后来发现官网文档里有一个ObjectLibrary 方法用来加载,结果这个方法显得麻烦,一步步的设置 而且我想异步操作就总是提示只能static load不能多线程load,这就很头疼了。
接下来就是发现StreamableManager.SynchronousLoad 这个同步加载的方法,看文档貌似还有一个接口是异步的RequestAsyncLoad ,但当时加载出现了错误,正确的路径找不到资源,所以看官网文档和answer web,有人用tick中调用这个SynchronousLoad方法成功了实现异步加载,于是照猫画虎,貌似加载是没问题。然后就出现了一个比较奇葩的问题,我当时用源码版调试的,图片显示正常,结果用release版本测试 就出现了光照贴图出错的问题。
当时我的心情就是 ue4 的资源加载好坑·········· 就没个简单点的接口 或者 完整点的文档指南么····
然后4.17 来了, asset manager出现了,重新使用4.17 的打包工具打包、挂载。然后使用4.17 里面对 StreamableManager这个再次封装一层的 asset manager 直接使用FStringAssetReference的TArray 进行异步加载和回调,而且只需要加载一个primary asset 其余的都能自动加载,比较方便。主要还是封装后的全局调用比较方便,初始化StreamableManager都已经帮我做了,直接调用,没有错误。
当时用的参考的还是很早版本的 pdf 文档https://answers.unrealengine.com/storage/temp/136465-runtimeassetmanagementin416.pdf,说的也是模棱两可的,自己测试了几遍测出来了。
最新的文档还没好好研究过Asset Management , 对于Editor中AssetManager插件的操作资源功能 还没使用过,感觉目前的异步加载接口能正常使用就已经满足我目前的开发需求了。后续要继续深入下去我想Epic的人应该会给我更多的惊喜。
另外还有一个小事就是 在4.17preview 1刚出来的时候也就是4.16正式版发布没多久,我在官网论坛留言Asset Manager不会用,LoadObj时使用的正确路径在Asset Manager中使用会提示找不到资源,这个该如何使用,需要更细节的说明。结果官网工作人员 回复不会啊,我们最新的几个游戏都是用这个AssetManager开发的啊,包括《Fortnite》 还有《PARAGON》,当时大概就是这样的意思。好吧,确实是我菜。 所幸 这个bug在4.17正式版中没有出现。 没什么好评价的,一楼已经把核心的内容说了:asset manager是对streamable manager的封装。虽然是做了层封装,资源引用路径的问题还是要注意。另外,4.17引擎内部已经大量使用asset manager了,UEngine类有一个UAssetManager成员。考虑到兼容性,低版本不支持,应该谨慎乐观。
官方的文档:
https://docs.unrealengine.com/latest//INT/Engine/Basics/AssetsAndPackages/AssetManagement/index.html 不太理解
Primary Asset
Secendnory Asset
Asset bundle
三者之间的联系。。
页:
[1]