赞
踩
通过 输出工程 进行资源打包,然后在 加载工程 中进行跨工程资源加载。需要对两个工程进行以下设置:
Catalog文件的路径是 Load Path 文件夹下处于最高层的那个 catalog*.json 文件的路径(子文件夹中也可能有 catalog*.json 文件)。
// 来自其他工程的Addressable资源的catalog*.json文件路径 var catalogPath = @"D:\UnityProjects\AddressablesTest\Mods\mod_01\catalog_2020.03.09.05.54.27.json"; // 加载catalog,并在加载完成事件回调中进行资源加载 Addressables.LoadContentCatalogAsync(catalogPath).Completed += (resLocatorAopHandler) => { // 要加载的资源 var assetKey = "Assets/ModAssets/Prefabs/cube_01.prefab"; // 可以直接进行全局查找并加载 //Addressables.InstantiateAsync(assetKey); // 也可以只在本次加载的Catalog数据中查找并加载(理论上性能应该更好,没有见到相关文档) if (resLocatorAopHandler.Result.Locate(assetKey, typeof(GameObject), out var locations)) { var resourceLocation = locations[0]; Addressables.InstantiateAsync(resourceLocation); } };
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。