对于YooAsset的接入、开发不必多说,主要是对资源的划分总结一下经验。
一、【核心】Tag实现进游戏前必下资源和边玩遍下的区分
YooAsset可以对Group和某个资源设定tag,利用tag对资源进行分类,比如方块皮肤全部都有Tag:Skin,同时对默认皮肤设置Tag:Skin_Default,对其他皮肤设置Tag:Skin_Normal。
那么现在可以通过Tag:Skin获取到所有的皮肤的打包信息。
可以通过Tag:Skin_Default获取教学包的皮肤,如果想进教学关,那么必须要在之前下载好Tag:Skin_Default的资源。
然后边玩遍下载,下载Tag:Skin_Normal的资源。
二、Group、Collector划分
打包需要注意几点:
1. 哪些资源种类可能需要频繁更新
比如关卡,关卡会一直增加。比如皮肤包,皮肤包会一直增加。
更新频繁的资源种类要特殊考虑,控制颗粒度,如果错误的将所有皮肤都打成一个包,那么新增一个皮肤或者修改一个皮肤就要更新整个皮肤包,需要下载的量就会很大。
所以通常将每个皮肤放到一个collector,所有皮肤放到一个group。
2.group这个概念目前没有实际作用,更多的是对游戏场景或者模块的自我定义。
三、资源热更新与大小版本控制
1. YooAsset只做Version的相等对比
如果相等就不检查资源更新,不相等就检查。
所以只需要资源热更新的时候,直接覆盖yooassset打出的资源即可。
2. 大版本
当资源发生重大改变让资源和代码对不上了,或者资源和代码都发生改变,结果也是让老资源和代码对不上了,那么就要更新大版本,而不是直接覆盖小版本。如果直接覆盖小版本,没有及时更新代码大版本的玩家就会报错,因为cdn上传就更新而代码需要版本审核一段时间才会通过。
所以整体的版本号设计就是大版本+小版本控制:
----WebGL/DefaultPackage
------/0 大版本号
--------/V0.X 资源热更新的版本直接覆盖
------/1 大版本号
--------/V1.X 资源热更新的版本直接覆盖
1016

被折叠的 条评论
为什么被折叠?



