update resource package

pull/497/head
何冠峰 2025-02-27 17:01:26 +08:00
parent 522ddb5115
commit 7c561ce254
3 changed files with 22 additions and 37 deletions

View File

@ -21,6 +21,13 @@ namespace YooAsset
/// </summary> /// </summary>
public string Error { private set; get; } public string Error { private set; get; }
/// <summary>
/// 资源对象
/// </summary>
internal PackageAsset Asset
{
get { return _packageAsset; }
}
/// <summary> /// <summary>
/// 唯一标识符 /// 唯一标识符

View File

@ -147,22 +147,6 @@ namespace YooAsset
return string.Empty; return string.Empty;
} }
/// <summary>
/// 获取主资源包
/// 注意:传入的资源路径一定合法有效!
/// </summary>
public PackageBundle GetMainPackageBundle(string assetPath)
{
if (AssetDic.TryGetValue(assetPath, out PackageAsset packageAsset))
{
return GetMainPackageBundle(packageAsset.BundleID);
}
else
{
throw new Exception("Should never get here !");
}
}
/// <summary> /// <summary>
/// 获取主资源包 /// 获取主资源包
/// 注意传入的资源包ID一定合法有效 /// 注意传入的资源包ID一定合法有效
@ -181,23 +165,17 @@ namespace YooAsset
} }
/// <summary> /// <summary>
/// 获取资源依赖列表 /// 获取主资源包
/// 注意:传入的资源路径一定合法有效! /// 注意:传入的资源对象一定合法有效!
/// </summary> /// </summary>
public PackageBundle[] GetAllDependencies(string assetPath) public PackageBundle GetMainPackageBundle(PackageAsset packageAsset)
{ {
if (TryGetPackageAsset(assetPath, out PackageAsset packageAsset)) return GetMainPackageBundle(packageAsset.BundleID);
{
return GetAllDependencies(packageAsset);
}
else
{
throw new Exception("Should never get here !");
}
} }
/// <summary> /// <summary>
/// 获取资源依赖列表 /// 获取资源依赖列表
/// 注意:传入的资源对象一定合法有效!
/// </summary> /// </summary>
public PackageBundle[] GetAllDependencies(PackageAsset packageAsset) public PackageBundle[] GetAllDependencies(PackageAsset packageAsset)
{ {

View File

@ -167,20 +167,20 @@ namespace YooAsset
} }
BundleInfo IBundleQuery.GetMainBundleInfo(AssetInfo assetInfo) BundleInfo IBundleQuery.GetMainBundleInfo(AssetInfo assetInfo)
{ {
if (assetInfo.IsInvalid) if (assetInfo == null || assetInfo.IsInvalid)
throw new Exception("Should never get here !"); throw new Exception("Should never get here !");
// 注意:如果清单里未找到资源包会抛出异常! // 注意:如果清单里未找到资源包会抛出异常!
var packageBundle = ActiveManifest.GetMainPackageBundle(assetInfo.AssetPath); var packageBundle = ActiveManifest.GetMainPackageBundle(assetInfo.Asset);
return CreateBundleInfo(packageBundle); return CreateBundleInfo(packageBundle);
} }
BundleInfo[] IBundleQuery.GetDependBundleInfos(AssetInfo assetInfo) BundleInfo[] IBundleQuery.GetDependBundleInfos(AssetInfo assetInfo)
{ {
if (assetInfo.IsInvalid) if (assetInfo == null || assetInfo.IsInvalid)
throw new Exception("Should never get here !"); throw new Exception("Should never get here !");
// 注意:如果清单里未找到资源包会抛出异常! // 注意:如果清单里未找到资源包会抛出异常!
var depends = ActiveManifest.GetAllDependencies(assetInfo.AssetPath); var depends = ActiveManifest.GetAllDependencies(assetInfo.Asset);
List<BundleInfo> result = new List<BundleInfo>(depends.Length); List<BundleInfo> result = new List<BundleInfo>(depends.Length);
foreach (var packageBundle in depends) foreach (var packageBundle in depends)
{ {
@ -197,20 +197,20 @@ namespace YooAsset
} }
string IBundleQuery.GetMainBundleName(AssetInfo assetInfo) string IBundleQuery.GetMainBundleName(AssetInfo assetInfo)
{ {
if (assetInfo.IsInvalid) if (assetInfo == null || assetInfo.IsInvalid)
throw new Exception("Should never get here !"); throw new Exception("Should never get here !");
// 注意:如果清单里未找到资源包会抛出异常! // 注意:如果清单里未找到资源包会抛出异常!
var packageBundle = ActiveManifest.GetMainPackageBundle(assetInfo.AssetPath); var packageBundle = ActiveManifest.GetMainPackageBundle(assetInfo.Asset);
return packageBundle.BundleName; return packageBundle.BundleName;
} }
string[] IBundleQuery.GetDependBundleNames(AssetInfo assetInfo) string[] IBundleQuery.GetDependBundleNames(AssetInfo assetInfo)
{ {
if (assetInfo.IsInvalid) if (assetInfo == null || assetInfo.IsInvalid)
throw new Exception("Should never get here !"); throw new Exception("Should never get here !");
// 注意:如果清单里未找到资源包会抛出异常! // 注意:如果清单里未找到资源包会抛出异常!
var depends = ActiveManifest.GetAllDependencies(assetInfo.AssetPath); var depends = ActiveManifest.GetAllDependencies(assetInfo.Asset);
List<string> result = new List<string>(depends.Length); List<string> result = new List<string>(depends.Length);
foreach (var packageBundle in depends) foreach (var packageBundle in depends)
{ {
@ -319,12 +319,12 @@ namespace YooAsset
} }
// 注意:如果清单里未找到资源包会抛出异常! // 注意:如果清单里未找到资源包会抛出异常!
PackageBundle mainBundle = manifest.GetMainPackageBundle(assetInfo.AssetPath); PackageBundle mainBundle = manifest.GetMainPackageBundle(assetInfo.Asset);
if (checkList.Contains(mainBundle) == false) if (checkList.Contains(mainBundle) == false)
checkList.Add(mainBundle); checkList.Add(mainBundle);
// 注意:如果清单里未找到资源包会抛出异常! // 注意:如果清单里未找到资源包会抛出异常!
PackageBundle[] mainDependBundles = manifest.GetAllDependencies(assetInfo.AssetPath); PackageBundle[] mainDependBundles = manifest.GetAllDependencies(assetInfo.Asset);
foreach (var dependBundle in mainDependBundles) foreach (var dependBundle in mainDependBundles)
{ {
if (checkList.Contains(dependBundle) == false) if (checkList.Contains(dependBundle) == false)