找回密码
 注册帐号

扫一扫,访问微社区

凉鞋同学 QFramework 使用指南 2020(七):Res Kit (1)概述与基本使用

1
回复
236
查看
打印 上一主题 下一主题
[ 复制链接 ]
排名
2324
昨日变化

43

主题

480

帖子

2339

积分

Rank: 9Rank: 9Rank: 9

UID
148923
好友
64
蛮牛币
2490
威望
0
注册时间
2016-5-17
在线时间
794 小时
最后登录
2019-9-11

专栏作家

QQ

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
在上一篇,我们刚刚结束了 脚本生成专题,我们知道 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.资源加载
接下来我们直接写资源加载的代码即可,代码如下,具体的代码含义,看注释即可。。
[C#] 纯文本查看 复制代码
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。
回复

使用道具 举报

6蛮牛粉丝
1145/1500
排名
3287
昨日变化

2

主题

227

帖子

1145

积分

Rank: 6Rank: 6Rank: 6

UID
55491
好友
1
蛮牛币
1633
威望
0
注册时间
2014-11-14
在线时间
448 小时
最后登录
2019-9-16
沙发
2019-9-6 15:05:44 只看该作者
这也太短了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则