private void _GetAssetDependencies(Guid id, out List <U3DAssetInfo> assets) { U3DAssetInfo assetInfo = null; assets = new List <U3DAssetInfo>(); if (!U3DAssetDB.GetInstance().Find(id, out assetInfo)) { return; } string[] depPaths = ResourceManageToolUtility.GetDependencies(assetInfo.path); foreach (var p in depPaths) { if (p.Equals(assetInfo.Path)) { continue; } U3DAssetInfo depAsset = null; Guid depId = ResourceManageToolUtility.PathToGuid(p); //在数据库中没有找到此资源则初始化 if (!U3DAssetDB.GetInstance().Find(depId, out depAsset)) { depAsset = new U3DAssetInfo(); depAsset.guid = depId; ResourceManageToolUtility.InitAssetInfo(p, ref depAsset); U3DAssetDB.GetInstance().AssetTable.Add(depAsset.guid, depAsset); } assets.Add(depAsset); } assets.Sort(new AssetInfoComparer(AssetFilterList)); }
private void _UpdateAssetTableStep() { string path = iter.Current as string; if (_IsIgnoreAsset(path)) { return; } U3DAssetInfo assetInfo = new U3DAssetInfo(); ResourceManageToolUtility.InitAssetInfo(path, ref assetInfo); Guid guid = assetInfo.guid; string[] deps = ResourceManageToolUtility.GetDependencies(path); foreach (var depPath in deps) { Guid depGuid = ResourceManageToolUtility.PathToGuid(depPath); if (depGuid.Equals(guid)) { continue; } assetInfo.deps.Add(depGuid); } resultObj.assetTable.Add(guid, assetInfo); }
public void Init() { Clear(); string[] assetPaths = ResourceManageToolUtility.GetAllAssetPaths(); foreach (var p in assetPaths) { if (IsPathContain(p)) { U3DAssetInfo newInfo = new U3DAssetInfo(); ResourceManageToolUtility.InitAssetInfo(p, ref newInfo); assetTable.Add(newInfo.guid, newInfo); } } }
public void GetAssetDependencies(Guid resID, out List <U3DAssetInfo> assets) { assets = new List <U3DAssetInfo>(); U3DAssetInfo assetInfo = null; if (U3DAssetDB.GetInstance().Find(resID, out assetInfo)) {//若找到了查依赖的资源 //若资源已经损坏则不再构建正向依赖 if (assetInfo.Corrupted) { return; } if (assetInfo.deps.Count > 0) {//已初始化正向依赖信息 foreach (var depId in assetInfo.deps) { U3DAssetInfo depAsset = null; if (U3DAssetDB.GetInstance().Find(depId, out depAsset)) {//正向依赖资源已经收集到资源数据库中 assets.Add(depAsset); } else {//未收集到资源数据库中,建临时信息 depAsset = new U3DAssetInfo(); depAsset.guid = depId; ResourceManageToolUtility.InitAssetInfo(ResourceManageToolUtility.GuidToPath(depId), ref depAsset); assets.Add(depAsset); } } assets.Sort(new AssetInfoComparer(AssetFilterList)); } else {//未初始化正向依赖信息 _GetAssetDependencies(resID, out assets); } } }