/// <summary> /// アセットバンドルのハッシュ /// </summary> private Hash128 CalcBundleHash(IBundleFileManifest data) { // 持ってるアセット var assets = data.Assets; // assetのhash一覧 var hashList = new List <Hash128>(assets.Length); foreach (var asset in assets) { var hash = AssetDatabase.GetAssetDependencyHash(asset); hashList.Add(hash); } // 結合して1個のhashにする var hashBytes = hashList.CombineHashBytes(); return(FsUtillity.ComputeHash(hashBytes)); }
/// <summary> /// 単一データ作成 /// </summary> private BundleBuildData CreateBuildData(IAccessLocation file, IBundleFileManifest buildFileData, IReadOnlyDictionary <string, string> table, AssetBundleManifest manifest) { var identifier = buildFileData?.Identifier; var abName = buildFileData?.ABName; var crc = FsUtillity.TryGetCrc(file.FullPath); var hash = manifest.TryGetHashString(abName); var dependencies = manifest.TryGetDependencies(abName).Select(c => table[c]).ToArray(); var size = FsUtillity.TryGetFileSize(file.FullPath); var d = new BundleBuildData { Path = abName, Identifier = identifier, Assets = buildFileData?.Address, Hash = hash, Crc = crc, Dependencies = dependencies, FileSize = size, Labels = buildFileData?.Labels, }; return(d); }
/// <summary> /// パスハッシュ? /// こっち先にやらないと名前をhashで上書きしてるので変換が合わないと思う /// </summary> private Hash128 CalcPathHash(IBundleFileManifest data) { return(FsUtillity.CalcStrHash(data.ABName)); }