Unity 资源管理需求分析
作为架构师,在开始动手之前,先分析清楚需求,你才能设计出合理的方案,我们来分析一下Unity资源管理都有哪些需求,把需求想清楚了,设计是自然而然的事情。
Unity资源管理主要需求:
对啦!这里有个unity学习交流小组里面聚集了一帮热爱学习unity的零基础小白,也有一些正在从事unity开发的技术大佬,欢迎你来交流学习。
Unity资源管理的技术方案
我们先回顾一下Unity的一些资源管理方案,分析一下各自的优缺点。
(1): 传统的Resources 方案以被淘汰。
(2) 基于纯AssetsBundle的方案。
现在越来越多的游戏采用纯AssetsBundle来做资源管理, 我们来看看如何使用纯AssetsBundle来做资源管理。
A: 代码如何加载资源
B: AssetsBundle资源包放哪里呢?
AssetsBundle资源包非常灵活,既可以放远程服务器,又可以放本地,接下来我们一起来看下AssetsBundle资源包如何存放,如何更新。
打包的时候,如果你想打入到安装包里面去,那么我们可以把Ab资源包放StreammingAssets目录下,打包进去。加载的时候,使用UnityWebRequest加载StreammingAssets目录下的ab包。如果打空包, 那么StreammingAssets不放任何资源包就可以了。AssetsBundle更新的时候, 先根据版本判断,下载最新的AssetsBundle到私有可写目录下(每个应用,在操作系统上都有自己的一个可写的私有目录)。
C: 如何使用更新AssetsBundle包
D: 资源包要分平台与渠道。
我们知道不同的平台(win64, x86, Mac, iOS Android) 要打不同的资源包,所以我们一般会扩展编辑器,统一一个窗口来管理与打包AssetsBundle资源包。打包界面,如图:
每次打包的时候,你知道打的是哪个平台,哪个渠道哪个版本的资源包,输出的时候也分平台分渠道。
E: 非常方便的指定哪些资源要导入到哪个ab包。
3 基于Addressable 的资源管理。
Unity 自己推出了基于Addressable的资源管理,本质上和我们上面的AssetsBundle系统类似,有兴趣的同学可以关注一下这个模式的资源管理的发展。
资源管理与更新,是Unity架构师的重中之重,希望大家能有收获。