Qframework 中超级方便的kitres


using QFramework;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;



public class TestResKit : MonoBehaviour
{
    ResLoader mResLoader = ResLoader.Allocate();
    private void Awake()
    {

    }

    /// <summary>
    /// 每一个需要加载资源的单元(脚本,界面)申请一个ResLoader
    /// ResLoader 本身会记录该脚本加载过的资源
    /// </summary>
    


    /// <summary>
    /// 通过 LoadSync 同步加载资源
    /// 只需要传入资源名就行,不需要传入AssetBundle名
    /// </summary>
    void Start()
    {
        this.GetComponent<SpriteRenderer>().sprite= mResLoader.LoadSync<Sprite>("forest_of_whispers_verdant_woods_tiles") ;
    }

    private void OnDestroy()
    {
        // 释放所有本脚本加载过的资源
        // 释放只是释放资源的引用
        // 当资源的引用数量为 0,会进行真正的卸载操作
        mResLoader.Recycle2Cache();
        mResLoader = null;
    }
}

使用方法就是,把这个脚本贴在需要加载资源的controller上。

用它来加载资源!这样如果自己没有了,资源就会自己回收自己

然后别忘了在什么地方吧这个初始化一下

            ResMgr.Init();

另外一个,就是加载一些数据或者图片集,可以这样做:

        public Sprite GetGoalLevelSprite(string id)
        {
            var spriteAtlas = mResLoader.LoadSync<SpriteAtlas>(GameConfig.GoalMapAtlasPath);
            var icon = spriteAtlas.GetSprite(id);
            mResLoader.AddObjectForDestroyWhenRecycle2Cache(icon);
            return icon;
        }
  public class ConfigSystem : BaseSystem, IConfigSystem
    {
        private ResLoader mResLoader = ResLoader.Allocate();

        private cfg.Tables tables;
        public cfg.Tables Tables => tables;

        public override void RegisterEvents()
        {
            tables = new cfg.Tables(file =>
                JSON.Parse(Resources.Load<TextAsset>("TextAsset/JsonConfig/" + file).text));

        }

        public cfg.LevelMapSet GetMapSet(string id)
        {
            cfg.LevelMapSet result;
            try
            {
                result = Tables.TbLevelMap.Get(id);
            }
            catch (Exception e)
            {
                Debug.LogError($"TbLevelMap id: {id} {e}");
                throw;
            }

            return result;
        }
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/128470.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

机器学习——朴素贝叶斯

目录 一、贝叶斯方法 背景知识 贝叶斯公式 二、朴素贝叶斯原理 判别模型和生成模型 1&#xff0e;朴素贝叶斯法是典型的生成学习方法 2&#xff0e;朴素贝叶斯法的基本假设是条件独立性 3&#xff0e;朴素贝叶斯法利用贝叶斯定理与学到的联合概率模型进行分类预测 用于文…

零代码编程:用ChatGPT批量提取flash动画swf文件中的mp3

文件夹&#xff1a;C:\迅雷下载\有声绘本_flash[淘宝-珍奥下载]\有声绘本 flash&#xff0c;里面有多个flash文件&#xff0c;怎么转换成mp3文件呢? 可以使用swfextract工具从Flash动画中提取音频&#xff0c;下载地址是http://www.swftools.org/download.html&#xff0c;也…

接口自动化测试之Fiddler使用教程

一、Fiddler 简介 Fiddler工具介绍 Fiddler是一个通过代理的方式来进行抓包工具&#xff0c;运行时会在本地建立一个代理服务&#xff0c;默认地址&#xff1a;127.0.0.1:8888。Fiddler开启之后&#xff0c;配置本机代理&#xff0c;再打开IE浏览器&#xff0c;IE的PROXY会自…

具名挂载和匿名挂载

匿名卷挂载 &#xff1a; -v 的时候只指定容器内的路径 如下面这个&#xff1a;/etc/nginx 1.docker run -d -P --name nginx -v /etc/nginx nginx 2.查看所有卷 docker volume ls 这里发现&#xff0c;这就是匿名挂载&#xff0c;只指定容器内的路径&#xff0c;没有指定…

刷题学习记录BUUCTF

[极客大挑战 2019]RCE ME1 进入环境直接就有代码 <?php error_reporting(0); if(isset($_GET[code])){$code$_GET[code];if(strlen($code)>40){die("This is too Long.");}if(preg_match("/[A-Za-z0-9]/",$code)){die("NO.");}eval($co…

如何低门槛开发有趣实用的ZigBee产品?

一、什么是 Zigbee 协议&#xff1f; Zigbee 技术是一种连接距离短、功耗低、复杂程度低、数据传输量低的无线通信技术&#xff0c;其命名灵感源自于蜜蜂在群体中的信息传输。它主要通过网关与互联网进行通信&#xff0c;并嵌入各种智能设备&#xff0c;最终实现自动控制和远程…

射频功率放大器有哪些用途

射频功率放大器是一种专用于放大射频信号的设备&#xff0c;它在现代通信、广播、雷达、无线电频谱监测和科学研究等领域中发挥着重要的作用。射频功率放大器能够将输入的低功率射频信号放大为较高功率的信号&#xff0c;以满足各种应用场景对信号传输距离、质量和稳定性的要求…

基于SSM的博客系统

基于SSM的博客系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringMyBatisSpringMVC工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 热点 博客详情 登录界面 管理员界面 博主界面 摘要 博客系统作为信息传播和分享的重…

Python 解决tkinter的Menu菜单command参数与bind方法共用触发事件

用普通函数作为媒介&#xff0c;使用event_generate()方法模拟触发bind()事件来创建一个模拟的event对象&#xff0c;并将其传递给绑定的事件处理函数。 运行结果 示例代码 import tkinter as tk# 菜单事件 def menuEvent(event):print(event.x, event.y)label.config(textf鼠…

香港科技大学广州|机器人与自主系统学域博士招生宣讲会—武汉大学专场!!!(暨全额奖学金政策)

在机器人和自主系统领域实现全球卓越—机器人与自主系统学域 硬核科研实验室&#xff0c;浓厚创新产学研氛围&#xff01; 教授亲临现场&#xff0c;面对面答疑解惑助攻申请&#xff01; 一经录取&#xff0c;享全额奖学金1.5万/月&#xff01; &#x1f559;时间&#xff1a;…

香橙派5部署chatglm2-6b模型

香橙派5部署chatglm2-6b模型 环境信息&#xff1a; 部署服务器&#xff1a;orangepi 5 16G版本 系统版本&#xff1a;Ubuntu 22.04.3 LTS 参考文档&#xff1a; 利用GPU加速&#xff0c;在Orange Pi上跑LLMs &#xff1a; https://zhuanlan.zhihu.com/p/650110025 遥遥领…

二十三、W5100S/W5500+RP2040树莓派Pico<Web I/O 通过网页控制板载LED灯>

文章目录 1 前言2 简介2 .1 什么是Web&#xff1f;2.2 Web的优点2.3 Web数据交互原理2.4 Web应用场景 3 WIZnet以太网芯片4 HTTP网络设置示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意事项6 相关链接 1 前言 Web只是一个静态的文…

java项目之网上跳蚤市场(ssm框架)

项目简介 网上跳蚤市场实现了以下功能&#xff1a; 管理员功能需求 管理员登陆后&#xff0c;主要模块包括首页&#xff0c;个人中心&#xff0c;会员管理&#xff0c;商品分类管理&#xff0c;商品信息管理&#xff0c;求购信息管理&#xff0c;留言板管理&#xff0c;系统管…

JNPF开发平台:加速企业数字化转型,提升业务效率

如今&#xff0c;随着信息化的深入发展&#xff0c;数字化转型已经成为企业生存和发展的关键。为了在竞争激烈的市场中保持领先地位&#xff0c;企业需要快速地适应变化&#xff0c;优化业务流程&#xff0c;并提供优质的用户体验。而在这其中&#xff0c;低代码开发平台JNPF是…

搜款网VVIC商品详情API接口

搜款网VVIC商品详情接口提供了全面的API接口&#xff0c;通过该接口&#xff0c;开发者可以使用商品ID等参数请求API&#xff0c;获取商品的详细信息&#xff0c;如商品标题、描述、价格、库存状态、销售量等。 要使用VVIC商品详情接口&#xff0c;您需要先注册开发者账号并申…

HCIP---VRRP

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一. VRRP概述 VRRP---虚拟路由器冗余协议 VRRP&#xff08;Virtual Router Redundancy Protocol&#xff09;是一种用于在多个路由器之间创建虚拟路由器的协议。 VRRP使用了一系列协议来实现路…

5+m6A+预后模型+WGCNA,简单又高效,学习下这篇思路吧

今天给同学们分享一篇生信文章“Targeting AURKA in Cancer: molecular mechanisms and opportunities for Cancer therapy”&#xff0c;这篇文章发表在Front Endocrinol (Lausanne)期刊上&#xff0c;影响因子为5.2。 结果解读&#xff1a; 在训练集中&#xff0c;基于3个与…

GC5958低压三相无刷直流驱动芯片,无感,正弦,低压,PWM调速可替代APX9358/茂达

GC5958提供了无传感器的三相无刷直流电机的速度控制的所有电路。正弦波驱动器的方法将是更好的低噪声。控制器功能包括启动电路、反电动势换向控制。脉宽调制) 速度控制。锁定保护和热关断电路GC5958既适合游戏机器&#xff0c;也适用于需要无声驱动的CPU冷却器。它以DFN3x3-10…

麒麟KYLINIOS软件仓库搭建03-软件仓库添加新版本的软件包

原文链接&#xff1a;麒麟KYLINIOS软件仓库搭建03-软件仓库添加新版本的软件包 hello&#xff0c;大家好啊&#xff0c;今天给大家带来麒麟桌面操作系统软件仓库搭建的文章03-软件仓库添加新版本的软件包&#xff0c;本篇文章主要给大家介绍了如何在麒麟桌面操作系统2203-x86版…

嵌入式面试常见问题(三)

1.linux下的proc文件夹是干什么的&#xff1f; 进程信息&#xff1a;/proc文件夹包含有关系统上运行的每个进程的信息。您可以在/proc中找到以进程ID&#xff08;PID&#xff09;为名称的子文件夹&#xff0c;每个子文件夹包含有关特定进程的信息&#xff0c;如状态、命令行参数…