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的一些 ...
随机推荐
- shiro解析ini文件
来吧,看看shiro是怎么解析ini文件的,这里假设ini文件在classpath下,名字叫做shiro.ini Factory<org.apache.shiro.mgt.SecurityMan ...
- python输出九九乘法表
1.脚本如下 (1)倒三角格式的,注意行前的空格 for i in range(1,10): for j in range(i,10): print("%d*%d= ...
- 10w数组去重,排序,找最多出现次数(精华)
package cn.tedu.javaweb.test; import java.util.*; /* * @author XueWeiWei * @date 2019/6/11 8:19 */@S ...
- Angular JS 中的内置方法之$watch
在$apply方法中存在脏检查,首先apply方法会触发evel方法,当evel方法解析成功后,会去触发digest方法,digest方法会触发watch方法. $watch(watchFn,watc ...
- Linux系统管理----账号与权限管理作业习题
1.创建/guanli 目录,在/guanli下创建zonghe 和 jishu 两个目录(一条命令) 创建目录:mkdir +目录 [root@localhost chen]#mkdir /guan ...
- 【Spring】No converter found for return value of type: class java.util.ArrayList
错误信息: org.springframework.http.converter.HttpMessageNotWritableException: No converter found for ret ...
- 【Sublime】设置显示编码格式
Mac 上的 Sublime 显示编码格式,设置方法: 右下角显示的 UTF-8 就是当前的编码格式. 添加如下代码: { "font_size": 18, // Display ...
- 对Rust所有权、借用及生命周期的理解
Rust的内存管理中涉及所有权.借用与生命周期这三个概念,下面是个人的一点粗浅理解. 一.从内存安全的角度理解Rust中的所有权.借用.生命周期 要理解这三个概念,你首要想的是这么做的出发点是什么-- ...
- eclipse使用(一)
使用eclipse时,编写对象的返回值非常麻烦,而使用返回值快捷键可以简化这一过程. 第一种 Alt+shift+L 将光标放在有返回值的代码句的分号后面: Resources.getResource ...
- 百度Echarts,蚂蚁金服G2,D3三种主流可视化工具对比
1.百度的Echarts 官网:https://echarts.baidu.com/ 介绍:ECharts,缩写来自Enterprise Charts,是百度推出的一款开源的,商业级数据图表,它最初是 ...