本文详细介绍了如何修改现有项目以利用可寻址资源。引用资源有三种传统方法:
- 直接引用(Direct References):将资源直接添加到应用程序自动加载的组件或场景中。
- 资源文件夹(Resource Folders):将资源添加到Resource文件夹并按文件名加载它们。
- 资源Bundles(Asset Bundles):将资源添加到资源 Bundles,然后按文件路径加载它们的依赖关系。
1、直接引用方法
要从这种方法迁移,请遵循以下步骤:
- 将您对对象的直接引用替换为资源引用(例如:public GameObject directRefMember;变为public AssetReference AssetRefMember;)。
- 将资源拖到适当的组件的检查器(Inspector)上,就像直接引用一样。
- 如果您要基于对象而不是字符串名称加载资源,请直接从您在设置中创建AssetReference的对象实例化该资源(例如:AssetRefMember.LoadAssetAsync();或AssetRefMember.InstantiateAsync(pos, rot);)。
注意:可寻址资源系统异步加载资源。当您将直接引用更新为资产引用时,还必须更新代码以异步操作。
2、资源文件夹方法
当您将 Resources 文件夹中的资源标记为“可寻址”时,系统会自动将资源从 Resources 文件夹移动到项目中名为 Resources_moved 的新文件夹中。移动资源的默认地址是旧路径,省略了文件夹名称。
例如:您的加载代码将从Resources.LoadAsync(“desert/tank.prefab”);更改为Addressables.LoadAssetAsync(“desert/tank.prefab”);。
3、资源 Bundles 方法
当您打开 Addressables Groups 窗口时,Unity提供将所有资源 bundles 转换为可寻址资源组的功能。这是迁移代码的最简单方法。
如果您选择手动转换资源,请单击忽略按钮。然后,使用前面介绍的直接引用或资源文件夹方法。
资源地址的默认路径是其文件路径。如果使用路径作资源的地址,那么您将以与从 bundle 加载相同的方式加载资源。可寻址资源系统处理 bundle 及其所有依赖项的加载。