找回密碼
 注冊帳號

掃一掃,訪問微社區

涼鞋同學 QFramework 使用指南 2020(七):Res Kit (1)概述與基本使用

2
回復
788
查看
打印 上一主題 下一主題
[ 復制鏈接 ]
排名
2324
昨日變化

43

主題

480

帖子

2344

積分

Rank: 9Rank: 9Rank: 9

UID
148923
好友
66
蠻牛幣
2497
威望
0
注冊時間
2016-5-17
在線時間
799 小時
最后登錄
2019-11-5

專欄作家

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蠻牛粉絲
1159/1500
排名
3288
昨日變化

2

主題

231

帖子

1159

積分

Rank: 6Rank: 6Rank: 6

UID
55491
好友
1
蠻牛幣
1637
威望
0
注冊時間
2014-11-14
在線時間
458 小時
最后登錄
2019-12-5
沙發
2019-9-6 15:05:44 只看該作者
這也太短了
回復

使用道具 舉報

0

主題

10

帖子

12

積分

Rank: 1

UID
310733
好友
0
蠻牛幣
6
威望
0
注冊時間
2019-1-4
在線時間
2 小時
最后登錄
2019-10-25
板凳
2019-9-27 15:44:57 只看該作者
感謝分享
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 注冊帳號

本版積分規則

法甲球队主场名称