Ylisar 发表于 2022-12-23 10:06

Unity 框架如何做好资源管理

Unity 资源管理需求分析
作为架构师,在开始动手之前,先分析清楚需求,你才能设计出合理的方案,我们来分析一下Unity资源管理都有哪些需求,把需求想清楚了,设计是自然而然的事情。
Unity资源管理主要需求:


对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。
Unity资源管理的技术方案
我们先回顾一下Unity的一些资源管理方案,分析一下各自的优缺点。
(1): 传统的Resources 方案以被淘汰。


A: 代码如何加载资源
先加载AssetsBundle, 然后再从AssetsBundle里面读取资源出来。这种方式确实能读取到资源,但是有一个很严重的问题,那就是开发的时候,每次都要对资源打ab包,每次多加一个资源的时候要多打一次ab包,这样,其实用起来是不方便的。所以我们想了个办法,通过条件编译,加一个预定义开关,如果是编辑器调试模式,那么我们直接使用AssetsDataBase.load来加载资源,不用打ab包,如果是发布模式,才从Ab包里面读取资源。这样开发的时候不用管ab包,打包发布的时候来做ab包即可。


C: 如何使用更新AssetsBundle包
下载AssetsBundle到app私有目录以后, 编写一个加载AssetsBundle的接口,这个函数里面,先去私有目录下找, 是否有对应的AssetsBundle,如果有,就从私有目录加载,如果没有,就从本地的StreammingAssets路径下加载。这样就能保证,每次优先从私有下载目录下加载AssetsBundle资源包。
D: 资源包要分平台与渠道。
我们知道不同的平台(win64, x86, Mac, iOS Android) 要打不同的资源包,所以我们一般会扩展编辑器,统一一个窗口来管理与打包AssetsBundle资源包。打包界面,如图:


每次打包的时候,你知道打的是哪个平台,哪个渠道哪个版本的资源包,输出的时候也分平台分渠道。







页: [1]
查看完整版本: Unity 框架如何做好资源管理