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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/282254.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The

配置文件示例: # SQL Server 数据源配置 spring.datasource.dynamic.datasource.sqlserver.urljdbc:sqlserver://100.100.0.0\\shili;databaseNamecs; spring.datasource.dynamic.datasource.sqlserver.usernamesa spring.datasource.dynamic.datasource.sqlserver.password sp…

【LearnOpenGL基础入门——5】着色器

目录 一.简介 二.GLSL 三.数据类型 四.输入与输出 五.Uniform 六.更多属性 一.简介 着色器(Shader)是运行在GPU上的小程序。这些小程序为图形渲染管线的某个特定部分而运行。从基本意义上来说,着色器只是一种把输入转化为输出的程序。着色器也是一种非常独立…

python 1200例——【13】计算阶乘

阶乘是一个数学概念,表示为 n!(读作 n 的阶乘),表示从 1 到 n 的所有正整数的乘积。例如,5! = 5 4 3 2 1 = 120。 在 Python 中,我们可以使用多种方法来计算阶乘。以下是其中的一些方法: 方法一:使用循环 这是最基本的方法,我们通过循环从 1 到 n 依次乘起来。…

【Linux】内核编译 镜像制作

文章目录 一、Ubuntu内核编译1.1 为什么自己编译内核1.2 Ubuntu 内核源码下载1.21 内核的作用1.22 Linux内核与ubuntu内核1.23 Ubuntu内核源码获取 1.3 在Windows系统下编译ubuntu内核1.4 在Linux系统下编译ubuntu内核 二、镜像制作 一、Ubuntu内核编译 1.1 为什么自己编译内核…

拓扑排序

目录 拓扑排序 有向图的拓扑排序 拓扑排序 一个有向图,如果图中有入度为 0 的点,就把这个点删掉,同时也删掉这个点所连的边。 一直进行上面出处理,如果所有点都能被删掉,则这个图可以进行拓扑排序。 举例子&#…

【机器学习】人工智能概述

人工智能(Artificial Intelligence,简称AI)是一门研究如何使机器能够像人一样思考、学习和执行任务的学科。它是计算机科学的一个重要分支,涉及机器学习、自然语言处理、计算机视觉等多个领域。 人工智能的概念最早可以追溯到20世…

vue3框架笔记

Vue Vue 是一个渐进式的前端开发框架,很容易上手。Vue 目前的版本是 3.x,但是公司中也有很多使用的是 Vue2。Vue3 的 API 可以向下兼容 2,Vue3 中新增了很多新的写法。我们课程主要以 Vue3 为主 官网 我们学习 Vue 需要转变思想&#xff0…

[YoloV8目标检测与实例分割——目标检测onnx模型推理]

一、模型转换 1.onnxruntime ONNX Runtime(ONNX Runtime或ORT)是一个开源的高性能推理引擎,用于部署和运行机器学习模型。它的设计目标是优化执行使用Open Neural Network Exchange(ONNX)格式定义的模型,ON…

设备健康管理系统助力制造企业实现数字化转型

在当今快速变革的制造业环境中,数字化转型已成为制造企业保持竞争力和实现可持续发展的关键。在这个数字化转型的浪潮中,设备健康管理系统正发挥着重要的作用。设备健康管理系统通过实时监测、预测分析和智能诊断等功能,为制造企业提供了全面…

亚马逊云科技Amazon Q,一款基于生成式人工智能的新型助手

近日,亚马逊云科技宣布推出Amazon Q,这是一款基于生成式人工智能(AI)的新型助手,专为辅助工作而设计,可以根据您的业务量身定制。通过连接到公司的信息存储库、代码、数据和企业系统,可以使用Am…

Redis(认识NoSQL,认识redis,安装redis,redis桌面客户端,redis常见命令,redis的Java客户端)

文章目录 Redis快速入门1.初识Redis1.1.认识NoSQL1.1.1.结构化与非结构化1.1.2.关联和非关联1.1.3.查询方式1.1.4.事务1.1.5.总结 1.2.认识Redis1.3.安装Redis1.3.1.依赖库1.3.2.上传安装包并解压1.3.3.启动1.3.4.默认启动1.3.5.指定配置启动1.3.6.开机自启 1.4.Redis桌面客户端…

Apollo自动驾驶:改变交通运输的游戏规则

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 ChatGPT体验地址 文章目录 前言1. Apollo缓存层2. 本地状态管理库3. 离线同步和冲突解决4. 离线数据同步和离线优先策略结论 📲🔌 构建离线应用:Apollo…

【微服务】springboot整合skywalking使用详解

目录 一、前言 二、SkyWalking介绍 2.1 SkyWalking是什么 2.2 SkyWalking核心功能 2.3 SkyWalking整体架构 2.4 SkyWalking主要工作流程 三、为什么选择SkyWalking 3.1 业务背景 3.2 常见监控工具对比 3.3 为什么选择SkyWalking 3.3.1 代码侵入性极低 3.3.2 功能丰…

Vue 自定义网站logo

效果如下&#xff1a; static目录下增加一个图标文件ico格式 修改index.html文件 代码如下&#xff1a; <link rel"shortcut icon" type"image/x-icon" href"static/lzwd.ico" > 按以上方法设置一下&#xff0c;就可以实现在浏览器显示自…

[Verilog] 加法器实现

1. 4位的加法器 先来一个最基本的的Verilog加法器 设计代码 module adder_4bit (input [3:0] a, b, output [3:0] sum, output carry);assign

【HR非技术问题面试篇】你怎么看待加班?

你对加班怎么看待? &#x1f60a;老油条经典回答系列 &#x1f60a;老油条经典回答系列 这种问题&#xff0c;怎么回答都可以&#xff0c;我觉得重要的实时表达你自己。如果你就不想加班&#xff0c;也没必要勉强说自己爱加班&#xff0c;结果入职之后干的不开心。 不过&…

云卷云舒:面向业务的智能运维(下)

云卷云舒&#xff1a;面向业务的智能运维&#xff08;上&#xff09;-CSDN博客 接着聊&#xff1a; 5、业务智能运维典型应用场景和关键设计 5.1 数据的采集 &#xff08;1&#xff09; 业务层数据的采集 包括接口响应时间、调用次数、服务间调用关系、时延、慢SQL、JVM内…

万字盘点 Android 领域在 2023 年的重要技术:AI, 14, Compose, 鸿蒙...

AICore 2022 年底横空出世的 GPT-3.5 引发了全球的大模型 LLM 狂潮。作为在 AI 领域耕耘多年的巨头&#xff0c;Google 自然不会坐视不管&#xff0c;于 2023 年底之际发布了超越 GPT-4 的 Gemini 系列模型&#xff0c;其在多模态领域的表现令无数人震撼。 而对于 Android 开发…

蓝桥杯C/C++程序设计——成绩统计

题目描述 小蓝给学生们组织了一场考试&#xff0c;卷面总分为 100 分&#xff0c;每个学生的得分都是一个 0 到 100 的整数。 如果得分至少是 60 分&#xff0c;则称为及格。如果得分至少为 85 分&#xff0c;则称为优秀。 请计算及格率和优秀率&#xff0c;用百分数表示&am…

SpringSecurity登录逻辑快速集成及原理探查

框架简介 Spring 是非常流行和成功的 Java 应用开发框架&#xff0c;Spring Security 正是 Spring 家族中的成员。Spring Security 基于 Spring 框架&#xff0c;提供了一套 Web 应用安全性的完整解决方案。 一般来说&#xff0c;Web应用的安全性包括用户认证&#xff08;Authe…