UGF框架中尝试加载AB资源来运行案例工程失败的解决办法
打开GameFramework场景,在编辑器模式下找到
表示当前资源加载模式是编辑器模式。(个人理解是和正常开发下的资源加载模式无异)
CXK补充的内容:需要找到如下图的脚本,把资源加载的模式改为Package模式(单机模式)可以通过代码查看ResourcesMode枚举变量具体含义.
做好了上面的准备工作,再按照下面的操作进行完,就可以正常使用AssetBundle进行资源的打包,和正常加载AB包资源来正常运行程序了。
那么,如果我们开发完成,要打包项目呢?
肯定就不能继续使用编辑器模式加载资源了,因为GameFramework在打包后资源加载方式是通过AB包加载。
什么是AB包?
AssetBundle的作用是,把资源打包,然后可以动态加载,从而可以实现资源的热更新。
正常来说,我们如果要使用AB包方式进行加载的话,需要进行很麻烦的配置,而GF已经帮我们安排好了最基础的部分,所以在一般项目中不用过分关心这些配置,只需要把相应的资源打包进相应的包里即可。
看完这些,已经对GF的资源加载方式有了一定的了解
如果是一个新工程,我们要先做点准备工作(这个可以自己改,不过打包教程不需要额外的介绍,就按这个来了)
AssetBundleEditor配置官网已有说明
为了方便我们就以官方案例StarForce为例,进行安卓打包
我们把相应的资源打包进相应的包内即可,加载的事,GF已经帮我们做好了。
以下转载自官网说明:http://gameframework.cn/archives/320
界面从左到右分为 AssetBundle 列表、AssetBundle 内容列表和 Asset 资源列表三部分。
1、AssetBundle 列表
AssetBundle列表(AssetBundle List)列出了项目中包含的所有 AssetBundle,空 AssetBundle、场景 AssetBundle 和非场景 AssetBundle 分别用三种不同的图标标识。
功能按钮说明:
① 增加新的 AssetBundle,点击后需指定 AssetBundle 的名称(含目录名,使用“/”分隔)和变体名称(可空、根据需要使用)。
② 重命名选中的 AssetBundle。
③ 移除选中的 AssetBundle。
④ 更改 AssetBundle 的加载方式,可选择从文件加载、从内存加载,或者是从内存中解密后加载等。
⑤ 标记此 AssetBundle 是否需要随 App 一起发布,若勾选则打包时会做特殊处理。
注:若新增或重命名 AssetBundle 失败,可能是名称包含不合法字符(只能使用大小写英文字母、数字、点、中划线和下划线)或者重名(判定重名不区分大小写)。
2、AssetBundle 内容列表
AssetBundle 内容列表(AssetBundle Content)列出的当前选中的 AssetBundle 中包含的资源。若某个资源是无效的,会以黄色叹号前缀图标和资源的 GUID 显示,产生无效资源的原因一般是删除了 Asset 但没有从 AssetBundle 内容列表中移除。
功能按钮说明:
① 选中 AssetBundle 内容列表中的所有资源。
② 取消 AssetBundle 内容列表中所有资源的选中状态。
③ 更改 AssetBundle 内容列表中的显示方式,可选择 Name(资源文件名)、Path(资源全路径)或者 Guid(资源 GUID)。
④ 将选中的资源从 AssetBundle 中移除。
3、Asset 列表
Asset 列表(Asset List)列出从指定路径下筛选出的所有资源。
功能按钮说明:
① 将选中的一个或多个资源增加到选中的 AssetBundle 里。由于 Unity 的限制,不允许在一个 AssetBundle 中同时存放场景(*.unity)和非场景资源。
② 分别将已选中的一个或多个资源作为 AssetBundle 名来创建 AssetBundle,并将自身加入到对应的 AssetBundle 里。
③ 隐藏已经存在于 AssetBundle 中的资源,只列出尚未指定 AssetBundle 的资源。
④ 从所有的 AssetBundle 中清理无效的资源,并移除所有空的 AssetBundle。建议 Save 前总是点一下 Clean 按钮,因为构建 AssetBundle 的时候,Unity 不允许存在无效的资源或者空的 AssetBundle。
⑤ 保存当前所有 AssetBundle 和资源的状态。注意在使用此编辑工具的过程中随时保存编辑结果,若需要恢复上次编辑状态,关闭并重新打开此编辑工具即可。
准备打包
此窗口中显示的选项包括:转载自http://gameframework.cn/archives/356
环境信息(Environment Information)列出了当前项目的基础信息。
构建对象(Build Target)用于指定构建哪些平台的 AssetBundle。
AssetBundle 选项(AssetBundle Options)用于指定构建 AssetBundle 时的参数,此处选项最终转换为 Unity 中的 BuildAssetBundleOptions 枚举,一般情况下使用默认设置即可。由于构建过程需要对生成的 AssetBundle 名称进行处理,故这里不允许使用 Append Hash To AssetBundle Name 选项。
压缩所有 AssetBundles(Zip All AssetBundles)用于指定构建 AssetBundle 后,是否进一步使用 Zip 压缩 AssetBundle 包。
记录离散依赖资源(Record Scattered Dependency Assets)选项会向资源列表文件中追加依赖资源信息,用于调试(此部分尚未完成)。
构建事件(Build Event Handler)用于指定追加构建资源包前后的行为,在实现 IBuildEvent 接口之后,即可在此处选择。例如可以在构建资源包后自动将资源拷贝到指定目录。
内部资源版本号(Internal Resource Version)建议每次自增 1 即可,Game Framework 判定资源包是否需要更新,是使用此编号作为判定依据的。
资源版本号(Resource Version)根据当前 App 版本号和内部资源版本号自动生成,作为参考显示。
输出目录(Output Directory)用于指定构建过程的结果输出目录(手动输入的话,记得按下回车键 ^_^),请确保具有访问此目录的权限且具有足够的磁盘空间。
Working Path:Unity 生成 AssetBundle 时的工作目录。
Output Package Path:为单机模式生成的文件的所在目录,若游戏是单机游戏,生成结束后将此目录中对应平台的文件拷贝至 StreamingAssets 后构建 App 即可。
Output FullPath:为可更新模式生成的完整文件包的所在目录,若游戏是网络游戏,生成结束后应将此目录上传至资源服务器,供玩家下载用。
Output Packed Path:为可更新模式生成的文件的所在目录,若游戏是网络游戏,生成结束后将此目录中对应平台的文件拷贝至 StreamingAssets 后构建 App 即可。一个 AssetBundle 是否会生成到 Output Packed Path,取决与这个 AssetBundle 是否在 AssetBundle 编辑工具中被标记为 Packed。
之后点击Start,出包后。找到AB包所在目录,找到目标平台AB包
复制到Unity工程下的StreamingAssets,作为加载源
测试
将编辑器资源加载方式关闭
运行游戏,若正常运行,则说明AB包打包成功。可以出包了
任何平台的打包都要进行这些步骤
刚开始学这个框架,如有不妥之处,恳请指正!
————————————————
版权声明:本文为CSDN博主「烟雨迷离半世殇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_15020543/article/details/85028223
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!