QFramework 使用指南 2020(七):Res Kit (1)概述与基本使用
在上一篇,我们刚刚结束了 脚本生成专题,我们知道 QF 提供了两种脚本生成模式,一种是 ViewController + Bind ,另一种是 UI Kit 模式。
本来打算,介绍完 ViewController + Bind 模式后,再介绍 UI Kit 模式。
但是在学习 UI Kit 之前,我们需要先了解一点 Res Kit。
Res Kit 简介
Res Kit,是 QF 的一大杀器,顾名思义,它是负责资源的。
特性如下:
- 可以使用一个 API 从 dataPath、Resources、StreammingAssetPath、PersistentDataPath、网络等地方加载资源。
- 基于引用计数,简化资源加载和卸载。
- 拥抱游戏开发流程中的不同阶段
- 开发阶段不用打 AB 直接从 dataPath 加载。
- 测试阶段支持只需打一次 AB 即可。
- 可选择生成资源名常量代码,减少拼写错误。
- 异步加载队列支持
- 对于 AssetBundle 资源,可以只通过资源名而不是 AssetBundle 名 + 资源名 加载资源,简化 API 使用。
废话不多说,直接开始从最基本的使用开始 。
Res Kit 基本使用
我们知道,在一般情况下,有两种方式可以让我们实现动态加载资源:
- Resources
- AssetBundle
在 Res Kit 中,推荐使用 AssetBundle 的方式进行加载,因为 Res Kit 所封装的 AssetBundle 方式,比 Resources 的方式更好用。
除了 Res Kit 中的 AsseBundle 方式更易用外,AssetBundle 本身相比 Resources 有更多的优点,比如更小的包体,支持热更等。
废话不多说,我们看下 Res Kit 的基本使用。
Res Kit 在开发阶段,分为两步。
- 标记资源
- 写代码
在开始之前,我们要确保,当前的 Res Kit 环境为模拟模式。
按下快捷键 ctrl + e 或者 ctrl + shift + r ,我们可以看到如下面板:
我们要确保上图中的模拟模式为勾选状态。
确保环境之后,我们就可以开始进行资源的标记工作了。
1. 资源标记
在 Asset 目录下,只需对需要标记的文件或文件夹右键->@ResKit- AssetBundle Mark,如下所示:
标记成功后,我们可以看到如下结果:
- 该资源标记的选项为勾选状态
- 该资源的 AssetLabel 中的名字如下
这样就标记成功了。
2.资源加载
接下来我们直接写资源加载的代码即可,代码如下,具体的代码含义,看注释即可。。
using QF.Res;
using QF.Extensions;
using UnityEngine;
namespace QF.Example
{
public class TestResKit : MonoBehaviour
{
void Awake ()
{
// 全局只需初始化一次
ResMgr.Init ();
}
/// <summary>
/// 每一个需要加载资源的单元(脚本、界面)申请一个 ResLoader
/// ResLoader 本身会记录该脚本加载过的资源
/// </summary>
/// <returns></returns>
ResLoader mResLoader = ResLoader.Allocate ();
void Start ()
{
// 通过 LoadSync 同步加载资源
// 只需要传入资源名即可,不需要传入 AssetBundle 名。
mResLoader.LoadSync<GameObject> ("TestObj")
.Instantiate ();
}
void OnDestroy()
{
// 释放所有本脚本加载过的资源
// 释放只是释放资源的引用
// 当资源的引用数量为 0 时,会进行真正的资源卸载操作
mResLoader.Recycle2Cache();
mResLoader = null;
}
}
}
将此脚本挂到任意 GameObject 上,运行后,结果如下:
资源加载成功。
到此,Res Kit 的基本使用就介绍完毕。
从下篇开始,开始逐步介绍 Res Kit 的方方面面。
此篇内容就这些。
- 转载请注明地址:凉鞋的笔记:liangxiegame.com。
- 任何问题欢迎到 QQ 群:623597263 交流。
QFramework 使用指南 2020(七):Res Kit (1)概述与基本使用的更多相关文章
- QFramework 使用指南 2020(九):Res Kit(3)异步加载 与 异步队列加载
在上一篇我们了解了 Res Kit 的一些背后设计原理,讲解了一些概念,比如:开发阶段.真机阶段等. 在这一篇,我们回到 Res Kit 使用细节上. 在 Res Kit 的第一篇,我们介绍了 Res ...
- QFramework 使用指南 2020(八):Res Kit(2)模拟模式与非模拟模式
在上一篇,介绍了 Res Kit 的基本使用,相信大家已经体会到了 Res Kit 的简便之处了. 在这一篇,我们试着探讨一下 Res Kit 的设计背后原理. AssetBundle 的不便之处 在 ...
- QFramework 使用指南 2020(二):下载与版本介绍
目前 QFramework 有两个可供安装的版本 PackageKit:QFramework 的插件平台,可以下载只感兴趣的插件,除了 Framework 模块还有一些 Shader 案例.项目模板. ...
- QFramework 使用指南 2020 (一): 概述
大家好,我是 QFramework 的作者 凉鞋,QFramework 从第一次代码提交到现在快 5 年了,期间陆陆续续增加了很多功能,在使用体验上做了大量的改进. 而市面上关于 QFramework ...
- QFramework 使用指南 2020(三):脚本生成(1)基本使用
在上一篇,我们对 QFramework 的两个主要版本提供了介绍,并且写下了第一个 QFramework 脚本. 在这一篇,我们学习 QFramework 中几乎每个项目都要用到并且从中受益的功能:自 ...
- QFramework 使用指南 2020(六):脚本生成(4)小结与补充
我们花了四篇文章,介绍了 QF 中的脚本生成功能. 实际上 QF 中的脚本生成是有两种的,第一种就是我们现在学习的 ViewController + Bind 模式. 这种模式是为除 UGUI 以外的 ...
- QFramework 使用指南 2020(五):脚本生成(3)生成 Prefab
在上一篇,我们简单介绍了 ViewController 的嵌套实现. 在这一篇,我们学习 ViewController 脚本生成的最后一个功能,即:生成 Prefab. 实际上这个功能非常简单. 我们 ...
- QFramework 使用指南 2020 (四):脚本生成(2)ViewController 与 ViewController 嵌套绑定
在上一篇,我们学习了,脚本生成的基本使用. 在这一篇,我们试着深入,聊聊脚本生成给我们带来的便利. 脚本生成的便利 首先,我们要知道,在 Unity 的游戏世界中都是以 GameObject 为单位的 ...
- Knockout应用开发指南 第七章:Mapping插件
原文:Knockout应用开发指南 第七章:Mapping插件 Mapping插件 Knockout设计成允许你使用任何JavaScript对象作为view model.必须view model的一些 ...
随机推荐
- (12)ASP.NET Core 中的配置二(Configuration)
1.内存配置 MemoryConfigurationProvider使用内存中集合作为配置键值对.若要激活内存中集合配置,请在ConfigurationBuilder的实例上调用AddInMemory ...
- ByteBuf
ByteBuf readerIndex ,读索引 writerIndex ,写索引 capacity ,当前容量 maxCapacity ,最大容量,当 writerIndex 写入超过 capaci ...
- java常见面试题目(三)
1.jsp的内置对象. JSP中一共预先定义了9个这样的对象,分别为:request.response.session.application.out.pagecontext.config.page. ...
- C语言编程入门之--第五章C语言基本运算和表达式-part1
导读:程序要完成高级功能,首先要能够做到基本的加减乘除.本章从程序中变量的概念开始,结合之前学的输出函数和新介绍的输入函数制作简单人机交互程序,然后讲解最基础的加减法运算,自制简单计算器程序练手. 5 ...
- 【Java例题】8.1手工编写加法器的可视化程序
1. 手工编写加法器的可视化程序. 一个Frame窗体容器,布局为null,三个TextField组件,一个Button组件. Button组件上添加ActionEvent事件监听器ActionLis ...
- JavaScript数据结构——树的实现
在计算机科学中,树是一种十分重要的数据结构.树被描述为一种分层数据抽象模型,常用来描述数据间的层级关系和组织结构.树也是一种非顺序的数据结构.下图展示了树的定义: 在介绍如何用JavaScript实现 ...
- [转] java开源游戏
收藏一下 triplea Triplea是一个开放源码的boardgame.它允许玩家选择各种各样的战略版图游戏(如:轴心国或同盟军).TripleA引擎支持联网对战,支持声音,支持使用XML文 ...
- Mybatis的工作流程
MyBatis工作流程 1:加载配置文件(mybatis-config.xml . *...Mapper.xml)并初始化, 将SQL的配置信息加载成为一个个MappedStatement对象(包括了 ...
- Source Maps简介
提高网站性能最简单的方式之一是合并压缩JavaScript和CSS文件.但是当你需要调试这些压缩文件中的代码时,那将会是一场噩梦.不过也不用担心,souce maps将会帮你解决这一问题. Sourc ...
- GOF23-单列模式
1.什么是单例模式 一个类只有一个实列,并且提供一个对外访问该实例的全局访问点. 常见应用场景:数据库连接池,项目中读取配置文件的类,servlet也是单列,Spring中的Bean默认也是单列 2. ...