在unity2018.3后,unity推出了名为addressable的可寻址资产管理系统,相比之前的资产管理,这个系统显然方便,全面了很多,最近有了点时间,便记录下最近的学习成果;
在addressable之前,我们在场景里实例化一个物体都会用到Instantiate,这种实例化方式是同步的,也就是说会阻塞主线程,主线程会等待它实例化成功之后才会向下运行,所以便会造成卡顿,而addressable的全部操作均为异步操作,不会阻塞主线程,这是第一个优点;在这之前为了减少包体大小,很多资源都会选择不直接打进包里,而选择放在服务器上,而在运行时进行热更新,在使用asset bundle时则要去处理很多的资源依赖关系问题,资源卸载问题等,而这些问题基本都需要自己编写,而现在的addressable的出现,则比较全面的的提供了所有问题的解决方案,如资源的打包,加载,更新,依赖项,性能分析等,这是优点二;站在这之前在开发阶段如果需要测试资源的热更新功能是否存在问题,则需要打包进行测试,并不能很直观的在编辑器里进行测试,但是addressable则可以在不打包的情况下模拟打包状态进行测试,减少了打包之后可能出现的问题,这是优点三;
下面记录下addressable的使用方法:
我的环境是unity2019.3f5,addressable版本为最新的1.6.0,首先在package Manage里下载addressables,然后创建一个新的addressable,如下