问题起因

游戏开发基本都会涉及到资源版本管理及更新,本文记录我在打包过程中遇到的一小问题:

开过中常用于标记资源版本的方法有计算文件HashVCS的版本等。

在Unity中对同一个资源文件进行多次打包(AssetBundle),发现每次打出ab文件的Hash值都不一样。

这不科学啊?打包同一文件多次Hash值不一样,这对于用Hash来标记版本的方法基本是废了。

我的Unity版本:Unity4.X

查资料发现:AssetBuildPipeline.BuildAssetBundle接口options参数,可以增加一项BuildAssetBundleOptions.DeterministicAssetBundle。这将保证AssetBundle使用唯一Hash进行标识,若不加这个参数AssetBundle每次构建时都生成不同ID。

打包脚本

下现贴一个我简单打包脚本:

[MenuItem("Tools/打包 setting_client")]
public static void BuildWd_SettingClient()
{
var setting_client = AssetDatabase.LoadAssetAtPath("Assets\\setting_client.bytes", typeof(Object));
//NOTE 这个路径写死先
var savePath = @"e:\xxx_online\data\setting_client.ab";
if (setting_client != null)
{
BuildPipeline.BuildAssetBundle(setting_client, null, savePath,
BuildAssetBundleOptions.UncompressedAssetBundle | BuildAssetBundleOptions.CompleteAssets |BuildAssetBundleOptions.DeterministicAssetBundle,
BuildTarget.StandaloneWindows);
Debug.Log("打包成功,文件在:" + savePath);
}
else
{
Debug.LogError("请检查,找不到 setting_client.bytes ");
}
}

资料文献

Hash MD5 CRC 知识

部分内容参考自:http://blog.dou.li/Unity3D-AssetBundle-Build-Hash-No-Same.html

Unity打包同一文件Hash不一样的更多相关文章

  1. unity 打包 windows 运行 紫色 粉红色

    unity下建立了个小demo,在editer里面运行正常.如下 但是一旦打包发布到android或者windows下就出现了类似这种情况 这种一般是由于材质贴图的缺失,一般来说选定的默认贴图的话会打 ...

  2. webpack 3.X学习之JS压缩与打包HTML文件

    js压缩 webpack自带一个插件uglifyjs-webpack-plugin来压缩js,所以不需要再次安装,当一切都准备妥当,引入uglifyjs-webpack-plugin模块: const ...

  3. 实力封装:Unity打包AssetBundle(大结局)

    →→前情提要:让用户选择要打包的文件←← 大结局:更多选择 Unity打包AssetBundle从入门到放弃系列终于要迎来大结局了[小哥哥表示实在写不动了o(╥﹏╥)o]... 经过上一次的教程,其实 ...

  4. 实力封装:Unity打包AssetBundle(四)

    →→前情提要:窗口初现←← 让用户选择要打包的文件 时至今日,我们选择打包文件的方式依然是在Project面板或Hierarchy面板中用鼠标点选.现在既然有了窗口,我们自然希望可以将所有文件罗列在窗 ...

  5. 实力封装:Unity打包AssetBundle(二)

    →前情提要:Unity最基本的AssetBundle打包方式. 第二种打包方式 Unity提供的BuildAssetBundles API还有一个重载形式,看下面↓↓ public static As ...

  6. unity打包iOS上线归纳

    1.去https://developer.apple.com登陆账号去生成打包用的签名文件,生成一个测试用的和一个上线发布用的签名文件 注意:签名文件绑定id必须和应用绑定包命一致,iOSapp唯一性 ...

  7. unity中的文件存储路径与各平台(Android,iOS)的关系

    原文链接:unity中的文件存储路径与各平台(Android,iOS)的关系 主要是这个问题困扰我了一阵子,所以特写写... unity中的的各种存储方法的对应关系(直接上截图吧) 重点说的是Appl ...

  8. 《DotNet Web应用单文件部署系列》二、打包wwwroot文件夹

    在这篇文章中,你将学到web缓存规则,文件传输中用到的压缩格式,以及如何手写代码响应请求.最后还能学到快速打包wwwroot文件夹组件用法. 一.了解Response Header 当第一次加载程序时 ...

  9. React Native 打包.jsx文件

    最近在研究React Native.感觉开发效率确实不错,但jsx语法写起来感觉不怎么顺手. 试用了Sublime Text 3和Visual Studio Code写代码,感觉反应总是慢一拍. 还是 ...

随机推荐

  1. [转]搭建Maven私服

    在开发过程中,有时候会使用到公司内部的一些开发包,显然把这些包放在外部是不合适的.另外,由于项目一直在开发中,这些内部的依赖可能也在不断的更新.可以通过搭建公司内部的Maven服务器,将第三方和内部的 ...

  2. 微信 小程序 canvas

    测试手机为IPHONE6,开发者工具版本0.10.102800.开发者工具0.11.112301版本也一样 微信小程序里的canvas 非 h5 canvas有很多不一样的地方,以下把微信小程序的ca ...

  3. ArcCatalog中连接SDE数据库

    描述 在ArcCatalog采用直接的方式连接SDE数据库时,无论怎样填写连接参数,都连接不上(数据库管理工具和代码都可以连).主要报两类错误: Error:ORA-12154:TNS:无法解析指定的 ...

  4. 盒图(boxplot)

    最近在摆弄数据离散度的时候遇到一种图形,叫做盒图(boxplot).它对于显示数据的离散的分布情况效果不错. 盒图是在1977年由美国的统计学家约翰·图基(John Tukey)发明的.它由五个数值点 ...

  5. Sharepoint学习笔记—习题系列--70-576习题解析 -(Q1-Q3)

    这里我把从网上搜集到的针对Sharepoint 70-576的有关练习进行系统的解析,整理成一个系列, 分期.分批次共享出来,供大家研究. 70-573考试注重的是"知道"相关知识 ...

  6. ubuntu制作本地源

    背景 平时apt-get install安装软件时,下载的deb文件都会存放在/var/cache/apt/archives/下,为了今后重装或给别人用,特别是没有网络时,这些deb文件实际上是可以派 ...

  7. Navicat Premium11.0.20破解版快速安装配置(附文件)

    Navicat Premium是当下非常好用的数据库管理软件,但是价格非常昂贵,并且还有某些小bug,感觉3000+的人民币 与软件本身的价值还是不相称.下面是破解安装流程安装过程是在MAC 10.1 ...

  8. ASP和ASP.NET发送邮件笔记

    这两天因公司网站邮件发不出去,然后研究了在asp网站发送邮件和在asp.net网站发送邮件的代码,把碰到的问题这里记录一下. 1.先说在asp.net中发送邮件吧, 刚开始只有126邮箱可以发出邮件, ...

  9. 【转载】安卓APP架构

    注:本篇博文转载于 http://my.oschina.net/mengshuai/blog/541314?fromerr=z8tDxWUH 本文介绍了文章作者从事了几年android应用的开发,经历 ...

  10. C语言中的字符串

    字符串 字符串 用双引号引起来的多个字符. 在C语言中字符串是用’\0’结束的.即每个字符串的最后一个字符是’\0’,但是结束符不显示,仅仅标志该字符串到这儿就结束了. 二.声明字符串 char *s ...