- 使用PackageManager导入Addressables包
- 导入AddressableImport插件
-
-
在Assets/AddressableAssetsData/AssetGroupTemplates目录右键Create->Addressables->GroupTemplates/BlankGroupTemplate创建一个新的模板文件(或直接修改此目录下的默认模板文件)
-
修改ContentPacking&Loading中的路径为LocalPath(如果是新建的空白模板点击最下面的AddSchema添加主题,下同)
-
检查ContentPacking中的IncludeInBuild是否为true,如果不是改为true
-
修改ContentUpdateRestriction中的UpdateRestriction为CannotChangePostRelease(即静态组,表明此组在发布之后不允许修改,只有设为静态组才能进行增量更新,否则为全量更新)
-
在Addressable设置步骤中的AddressableSettings中找到AssetGroupTemplates栏点击加号选择刚刚添加的模板将模板加入到设置中
-
-
在Assets/AddressableAssetsData目录下右键Create->Addressables->ImportSettings创建ImportSetting
-
根据自己的项目需求设置分组规则,用于自动将资源分配到Addressable的组中(使用方法参见官方文档)
-
将添加的规则的GroupTemplate设置为我们前面操作新建的模板,并将GroupTemplateApplicationMode改为AlwaysOverwriteGroupSetting
-
修改完之后记得点击Save保存
-
在Asset目录下右键然后点击AddressableImporter:CheckFolder(s)检查设置中匹配到的资源按照设置分组(在首次打包之后不要再在Assets目录下执行此操作,原因在注意事项中有详细描述)
-
点击Unity工具栏的Window->AssetManagement->Addressables->Groups打开Groups面板可以看到资源已经按照定义的规则分好组
-
点击右上角Build->NewBuild->DefaultBuildScript构建资源包(只有首次构建才点击此选项打资源包,通过此操作构建的资源不能更新到客户端只有重新构建apk才能正常加载)
-
资源构建完成后直接Build Apk即可(加载代码,buld apk等不再阐述)
-
将RemoteBuildPath下的文件拷贝到RemoteLoadPath可以访问到的目录
-
需要进行增量更新时点击Group面板的Tools->CheckForContentUpdateRestrictions按钮
-
进行上述操作之后可以看到在Group面板多出了一个分组,静态组中修改过的内容被移动到了新的分组,此时选中这个分组在Inspector视窗将ContentPacking&Loading的BuildPath和LoadPath修改为Remote
-
点击Group面板的Build->Update a Previous Build
-
在弹出的窗口中仍然选中第2步的.bin文件打开
-
等待Build完成
-
将RemoteBuildPath下的文件拷贝到RemoteLoadPath可以访问到的目录即完成了增量更新
-
不要手动在Group面板修改Group的内容
-
在构建apk包后不要再随意执行Import插件的CheckFolder操作,否则在后续的增量更新中会将导致更新内容变大(例如在首次构建时有ABC三个资源在甲Group中,第一次增量更新时修改了A此时A将会被移动到Remote组乙,后续再修改B而A未再次修改的情况下进行增量更新B将会移动到Remote组丙,而A仍在乙组,但若在第二次增量更新前执行了CheckFolder操作乙组的内容将会被重新移动至原始组导致后续的更新中被分配到最新的热更组如丙,此时本应在乙组中的A资源被移动到了丙,导致客户端下载时明明存在最新内容的A但因需要下载丙组的内容而导致要下载本可不用重复下载的A)
-
当在后续更新中新增ImportSetting规则时,应在规则匹配的目录下执行CheckFolder操作,避免影响到其它已存在的组导致上一条的问题发生