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的时候会先释放一遍加载到内存中的资源,但是这会导致请求的图集资源在内存中被释放掉,从而导致白块问题依旧存在,所以这里将其注释掉
在这里插入图片描述
运行

在这里插入图片描述
完美解决

Logo

汇聚全球AI编程工具,助力开发者即刻编程。