QF学习经历一

** QF学习经历
感谢凉鞋大大和千禧师傅**
跟着凉鞋大大的文档走
1 脚本部分
脚本快捷生成
挂载 ViewController(父物体)
挂在 bind (子物体)
嵌套(同时挂载ViewController和bind)
生成 Prefab
勾选生成prefab就可以了在这里插入图片描述
脚本生成小结
实际上 QF 中的脚本生成是有两种的,第一种就是我们现在学习的 ViewController + Bind 模式。
这种模式是为除 UGUI 以外的脚本生成提供的,也就是说如果是 游戏对象 或者是 NGUI、FGUI 还是 XXGUI,只要不是 UGUI,就推荐使用 ViewController + Bind 模式。
如果你的项目已经在用某个 UGUI 框架了,那么也推荐使用 ViewController + Bind 模式。
如果你在新项目用 QF 并且打算使用 UGUI,那么推荐的是接下来要介绍的 UI Kit。
ViewController + Bind 这套脚本生成机制是从 UI Kit 中提取出来的。
ViewController + Bind 模式 与 UI Kit 中在一个项目中可以同时存在,它们是两个定位。UI Kit 除了脚本生成 还 兼顾了 界面管理,只为 UGUI 提供支持。
UI 脚本生成路径和 UIPanel Prefab 路径,不是 ViewController 的,而是支持 UI Kit 的。
**2 Res Kit **
勾选模拟模式
在这里插入图片描述
资源加载代码
资源标记![`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;
    }
}

}`]
开发的两个阶段
开发阶段、真机阶段

开发阶段:

模拟模式
真机阶段:

每次打 App 包之前,打一次 AB 包。
可以在 Unity Editor 环境下,取消勾选模拟模式,这时在运行时加载的资源则是真正的 AssetBundle 资源

异步加载 与 异步队列加载

// 添加到加载队列
mResLoader.Add2Load("TestObj",(succeed,res)=>{
    if (succeed) 
    {
        res.Asset.As<GameObject>()
                        .Instantiate();
    }
});

// 执行异步加载
mResLoader.LoadAsync();

同时异步加载多个资源

// 添加一个资源
mResLoader.Add2Load("TestObj",(succeed,res)=>{
    if (succeed) 
    {
        res.Asset.As<GameObject>()
            .Instantiate();
    }
});

// 加载一个资源,不处理
mResLoader.Add2Load("TestObj1",(succeed,res)=>{});

// 加载一个列表中的资源
mResLoader.Add2Load(new List<string>(){ "TestObj2","TestObj3","TestObj4"});

// 执行加载操作
mResLoader.LoadAsync(()=>{
  // 可以监听所有的资源是否加载成功
  "资源加载成功".LogInfo();
});

一般情况下 资源加载都传入资源名字 如果遇到特殊情况 如资源同名,那就传入资源包中的名字(TestObj, AB 的名字:testobj_prefab。)
本文源自凉鞋大大

凉鞋的笔记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值