YooAsset 2.3.9版本 示例教程运行
1. 初始化,编辑模式运行

打开AssetBundle Collector,点击Fix,然后save,将配置保存来
接着打开Boot场景,将Play Mode切换为EditorSimulateMode,即编辑器模式
然后点击开始
发现右下角的模式为Simulate,即模拟模式,游戏可以正常启动
2. 退出错误解决
当在battle场景退出应用时,会产生报错

提示此时不存在“DefaultPackage”
查看SceneBattle.CS脚本,在OnDestroy方法中

在获取DefaultPackage时报错
查看场景,此时全局存在的是YooAssetsDriver
其在UNITY_EDITOR即编辑器下会走到YooAssets.OnApplicationQuit方法
查看这里的代码,发现此时会清空所有的package,所以SceneBattle脚本中在OnDestroy方法获取package会存在获取不到的情况,所以我们先把SceneBattle的OnDestroy中的释放资源方法先注释掉

即可解决在battle场景的退出报错
3. 单机运行
打包前,将Play Mode切换到OfflinePlayMode,即单机模式
此时,需要打出AB包到StreamingAsset路径下,因为单机模式加载的是位于本地的AB包资源
在AssetBundle Builder窗口中,Copy Buildin File Option选项选择为ClearAndCopyAll,即能够先清空StreamingAssets下Default Yoo Folder Name文件夹下的内容,再将AB包拷贝到这个文件夹下,其实这是对于首包文件的处理
对于Default Yoo Folder Name的设置,在YooAsset的设置中配置


Copy Buildin File Option,即首包资源拷贝项
构建结束后,会自动弹出资源文件夹
默认会在项目Assets同级的Bundles文件夹下
此时StreamingAssets下也出现了所有的资源文件
运行
右下角出现了资源版本号,和上方文件夹中的资源版本号一致,说明此时单机模式运行成功
4. 打包单机运行
直接接着上面的操作Build

依旧照常运行
5.远程运行
即资源放在服务器的情况
可以在gitee上新建一个仓库,用来作为远程服务器试验,将这个工程拉下来
查看实例项目源代码,在PatchOperation脚本中,有通过状态机初始化补丁流程,其中FsmInitializePackage中设置了远程服务器地址

这里我们新设置一下,改成自定义仓库的远程地址
然后再修改联机运行模式时的调用,这里还有一个要注意的点是,如果不需要首包资源的话,可以将BuildinFileSystemParameters设置为null,这样就代表不需要包内资源,即首包资源,这里试验的时候不需要,所以暂时先注释掉
然后场景侧将Play Mode改为HostPlayMode
然后开始打包,注意因为不需要包内资源,所以Copy Buildin File Option选项设置为None
同时,如果StreamingAssets下有AB包文件,需要清空
然后Build
将自动弹出的文件夹内的资源拷贝到远程服务器仓库


如果PC下有已经下载过的资源缓存,就先删除掉,这个文件夹的名称来自于Default Yoo Folder Name的设置
运行,发现有资源更新提示

成功运行游戏
PC下下载的资源就在上面贴过的缓存文件夹中,如果是安卓,那么会下载到持久化数据路径下
6. 潜在的Sprite变白块问题


示例项目在运行时会出现Sprite图片变白块的情况,原因如官方文档所说,是因为图片被打到了图集中,而图集没有和UI面板所在的AB包建立引用关系,解决办法就是参照示例代码进行添加
在SceneBattle脚本中,Awake的时候添加请求图集资源的代码

注意在UI面板销毁时将方法注销
还有,在示例代码中,Start的时候会先释放一遍加载到内存中的资源,但是这会导致请求的图集资源在内存中被释放掉,从而导致白块问题依旧存在,所以这里将其注释掉
运行

完美解决

所有评论(0)