本项目将整合之前Unity程序基础小框架专栏在Unity 3D模型展示项目基础上进行整合,并记录了集成过程中对原脚本的调整过程。增加了Asset Bundle+ILRuntime热更新技术流程。

前面文章中对项目功能完成项目框架整合,完成模型展示的基本功能,后续的篇幅主要进行资源热更和代码热更的实现。官方推出的Addressable Asset System进行资源热更简称AA,作者在网上找了不少介绍Addressables系统的文章,经过验证总结结合案例记录Addressables系统的使用经验。

使用AssetBundle形式,加载的时候要注意AB包之间的依赖关系,资源重复打包的问题,做资源热更新也要实现增量资源包的打包,然后自己实现热更检测、资源下载、MD5比对,解压等等逻辑过程繁琐麻烦,Addressable Asset System简化资源热更新的环节使得开发者进行资源热更新变得简单易上手。

项目安装Addressable Asset System,在Package Manager中搜索Addressables

进行安装

进行设置并使用,选择创建Groups。

将预制体Switch设置Addressable,可以发现他出现在窗口Addressables Groups进行属性操作。

资源命名

设置模式

进行构建

构建目录Library\com.unity.addressables\aa\Windows

修改MyGameManager代码改变资源加载方式,使用Addressables进行预制体加载。运行能够加载。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48


void Start()


    {


        //var tempDD = ResMgr.GetInstance().Load<GameObject>("Prefabs/Switch");





        Addressables.LoadAssetAsync<GameObject>("Switch").Completed += (handle)=> {


            // 预设物体


            GameObject prefabObj = handle.Result;


              GameObject tempDD = Instantiate(prefabObj);


            tempDD.transform.SetParent(parentObj.transform);


            tempDD.name = "Switch";


            camera.LookAt = tempDD.transform;


            camera.Follow = tempDD.transform;


            tempDD.transform.position = new Vector3(5f, 0f, 50f);


            camera.GetRig(1).LookAt = tempDD.transform;


        };


    }

修改预制体,将Cube隐藏

重新构建资源文件

选择.bin文件,平台是Windows打开

此时,报错Previous build had ‘Build Remote Catalog’ disabled. You cannot update a player that has no remote catalog specified

在AddressableAssetSettings中

设置和Group信息中的Content Packing&Loading路径一致,修改为远程更新目录

AddressableAssetSettings中的设置

Update a previous Build

配置文件夹中生成更新包

运行结果

下一步将使用远程服务器进行更新包的发布,程序进行资源更新检测及下载操作。先预览一下效果

Unity 3D模型展示框架篇之资源打包、加载、热更(二)

Addressables资源管理推荐文章:https://blog.csdn.net/linxinfa/article/details/122390621

————————————————

版权声明:本文为CSDN博主「yxlalm」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/yxl219/article/details/126124611