
Asset Management(资产管理)对于那些不需要它的人来说是一个完全没有必要的功能,因为UE资源的加载和卸载是自动的,不需要控制它们。
但是在主机游戏开发和手游开发中,如果采取这样的方式,就会成为致命的问题。有些情况会出现内存不足,或者一次性加载所有资产成为加载问题的情况,在这种情况下,使用资产管理框架可以更详细地加载资产。
因此,下面将解释一下资产管理器,也称为资产管理框架。
基本术语
在使用Asset Manager机制之前,需要了解一些基本术语。
主要资产和次要资产
主要资产是可以通过资产管理器直接操作的资产,通过指定主要资产ID,可以让UE引擎开始加载所需的资产。
次要资产是自动加载为链接到主要资产的资产,而无需在资产管理器上指定,主要资产引用的资产会自动注册为次要资产。
资产管理器和流管理器
资产管理器是为管理资产而准备的单例类。此外,由于在资产管理器内部封装了一种称为流管理器的机制,因此可以自动异步读取。
资产包
它与安装在某个引擎中的机制完全不同,AssetBundle是与主要资产关联的特定资产的命名列表。
可以在C++代码中创建AssetBundle本身,但在大多数情况下无需担心,认识到二级资产自动注册为一级资产的资产包列表就足够了。
注册主要资产
有两种方法可以注册主要资产,一种是在项目设置中从资产管理器将其注册为主要资产类型,另一种方法是创建一个主要数据资产并在那里注册该资产。
第一种是前一种方法,打开项目设置并使用要扫描的主要资产类型从资产管理器中添加一个元素。

然后在主要资产类型中输入名称。
这里的名字很重要,如果在此之后的过程中没有正常运行,请先在这里探索一下。并指定资产基础类,例如,为静态网格资产选择静态网格,或为骨架网格资产选择SkeletalMesh。
从目录添加一个元素并选择资产所在的文件夹,该文件夹也将被搜索。

现在它基本上可以使用了,但现在用于蓝图。
蓝图的基础是一样的,但是在资产基础类中选择Actor并且一定要勾选拥有蓝图类。
这次,将直接将蓝图注册为特定资产,而不指定文件夹。

如果处于这种状态,没问题。
接下来是如何注册为原始数据资产,首先,创建一个数据资产如下。

并在数据资产实例类中选择PrimaryAssetLabel,如下图所示。

当打开主数据资产时,可以从显式资产中注册任何资产,在蓝图的情况下,也可以从显式蓝图中指定。由于是数组元素,所以可以一次注册大量资产。
主要资产注册现已完成,现在是实际加载资产的时候了。
指定并加载主要资产
实际上加载它非常容易,从蓝图中放置Async Load Primary Asset。

从主要资产中指定实际的主要资产,如果此处正确注册了主要资产,则该资产将显示在列表中。
如果此处显示不佳,请尝试更改主要资产类型的名称或在资产管理器设置中更改目录的名称。
特别是当由于某种原因指定了特定名称时,通常不会显示名称,不知道这是错误还是设计使然。
如果一切顺利,资产将开始异步加载,完成后将调用Completed,现在可以自由使用资产了。
此外,通过使用异步加载主要资产列表,可以一次加载多个主要资产。

当然,Completed直到所有资产都完成加载才会出现,所以要小心加载比单独调用它花费的时间更长。
指定和删除主要资产
当然,如果能读懂,也可以删除加载的资源。

使用Unload Primary Asset删除内存中加载的资产,这不是异步,所以如果一次做所有的事情要小心。
用法本身很简单,所以应该不是特别困难。
使用资产审计窗口一目了然
最后,使用Asset Audit窗口查看主要资产列表等,可以通过从菜单中选择工具 → 审计 → 资产审计。

现在窗口已打开,来实际查看主要资产。

可以使用添加主要资产类型添加主要资产,也可以添加非主要资产。
从添加资产类别中选择一个类别,或在内容浏览器中右键单击单个资产,然后如图所示选择它以添加它。

资产审计窗口可以很容易地查看有关实际管理的资产的各种信息,还可以通过从右下方的显示选项中仅选择要显示的列信息来查看所需的信息。

以此方式,可以仅安排必要资产的信息。
在PC版中,Selected Platform基本上只有Editor,但也可以分别为主机和手机注册资产。
…
以上是3D天堂关于 UE4 资产管理框架的全部内容,如果你有任何反馈,请随时在本页面下方留言。