unity3d 对大图额外加载

2023-11-12

加载 UI 背景大图

// lua 使用:

if self.findBack_image ~= nil then
	resMgr:UnLoadBigImage(self.findBack_image)
	self.findBack_image = nil
	self.topBg:SetActive(false)
	self.topBg:GetComponent('Image').sprite = nil
end
self.findBack_image = "ui/tex/welfarebigui.unity3d"

self.topBg:SetActive(false);
resMgr:LoadBigImage(self.findBack_image, "ZaiXianJiangLiGongGaoTiao",function (sp)
	self.topBg:SetActive(true);
	self.topBg:GetComponent('Image').sprite = sp;
end)


// c# 源代码
// LoadBigImage 函数原型:
public delegate void LoadBigImageCallBack(Sprite sp);
...

   /// <summary>    
   /// 初始化
   /// </summary>
   public void Initialize() {
         string uri = string.Empty;
         canDestroyBundles = new List<string>();
         bundlesLoading = new Dictionary<string, float>();
         bundles = new Dictionary<string, AssetBundle>();
         bigImageScript = new Dictionary<string, LoadBigImage>();
         bigImageAB = new Dictionary<string, AssetBundle>();
         uri = Util.DataPath + AppConst.AssetDir;
       if (!FileExit(uri, AppConst.AssetDir)) uri = Util.AppContentPath() + AppConst.AssetDir;

         manifestbundle = AssetBundle.LoadFromFile(uri);
         manifest = manifestbundle.LoadAsset<AssetBundleManifest>("AssetBundleManifest");
     }

public void LoadBigImage(string bundelName, string assetname, LoadBigImageCallBack cb)
        {
            if (bigImageScript.ContainsKey(bundelName)) return;
            if (bigImageAB.ContainsKey(bundelName)) return;

            GameObject go = new GameObject("BigImage");
            LoadBigImage lbi = go.AddComponent<LoadBigImage>();
            bigImageScript.Add(bundelName, lbi);

            lbi.load(bundelName, assetname, cb);
        }

   public void UnLoadBigImage(string bundelName)
    {
        if (bigImageScript.ContainsKey(bundelName))
        {
            bigImageScript[bundelName].UnLoad();
        }
        if (bigImageAB.ContainsKey(bundelName))
        {
            bigImageAB[bundelName].Unload(true);
            bigImageAB.Remove(bundelName);
        }
    }



LoadBigImage.cs 文件:

public class LoadBigImage : MonoBehaviour {
    private AssetBundleCreateRequest m_abcr = null;
    private string m_abname;
    private string m_assetname;
    private LoadBigImageCallBack m_func;
    private bool m_ret = true;

    public void load(string abname, string assetname, LoadBigImageCallBack func)
    {
        m_abcr = null;
        m_abname = abname;
        m_assetname = assetname;
        m_func = func;
        m_ret = false;

#if UNITY_EDITOR
        if (AppFacade.Instance.SimulateAssetBundleInEditor)
        {

            string[] assetPaths = AssetDatabase.GetAssetPathsFromAssetBundleAndAssetName(abname, assetname);
            if (assetPaths.Length == 0)
            {
                Debug.LogError("There is no asset with name \"" + assetname + "\" in " + abname);
                return;
            }

            Sprite prefab = AssetDatabase.LoadAssetAtPath<Sprite>(assetPaths[0]);
            if (m_func != null) m_func(prefab);
            LuaHelper.GetResManager().RemoveImageObj(m_abname, null);
            Destroy(gameObject);
            return;
        }
#endif

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

unity3d 对大图额外加载 的相关文章

  • Python时间序列--ARIMA模型参数选择(六)

    ARIMA模型参数选择流程 import pandas as pd import numpy as np TSA from Statsmodels import statsmodels api as sm import statsmodel
  • 指针和数组笔试题解析【下篇】

    文章目录 6 指针笔试题 6 1 试题 1 6 2 试题 2 6 3 试题 3 6 4 试题 4 6 5 试题 5 6 6 试题 6 6 7 试题 7 6 8 试题 8 6 指针笔试题 6 1 试题 1 下面代码输出的结果是什么 int m
  • 数学建模国赛论文latex代码汇总

    目录 一 写在前面的话 二 latex环境安装和编辑器的选择 三 基础配置 写作环境 中文支持 页面设置 分级目录 四 数学公式 方程 矩阵编写与特殊符号的输入 五 三线表的输入 六 图片和参考文献的插入 七 最后附上完整配置代码 一 写在
  • Java的jdk安装教程:

    一 jdk安装流程 1 从官网下载jdk https www oracle com java technologies downloads 2 进入官网 3 选择需要的版本 4 下载后 双击安装 二 配置环境变量 1 桌面右键计算机点击属性
  • 利用Audacity软件分析ctf音频隐写

    分析音频得到摩斯电码 看波的宽度分辨长短音 比较细的就是短音 代表 比较粗的就是长音 代表 中间的间隔就是 得到摩斯电码
  • unity点击场景内物体进行交互

    提示 本文展示点击事件 另有其他自行研究 前言 一 原理 二 使用步骤 1 使用前提 2 使用脚本 总结 前言 很多情况下我们需要对场景内的物体进行交互 今天我们采用射线检测的方法进行点击 例如 点击场景内的Cube 进行开始旋转 提示 以
  • 宏DECLARE_DYNCREATE与DECLARE_DYNAMIC

    一 作用 DECLARE DYNCREATE的主要作用 支持对象的动态创建 使用 DECLARE DYNCREATE 宏声明的类可以在运行时动态创建对象 支持对象的序列化 MFC框架提供了对象的序列化支持 允许将对象的状态保存到磁盘 序列化
  • VS2010编译QT4.8.4遇到“LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 “问题

    在用VS编译qt时候很少有人遇到如上所示问题 因此当我遇到时很不幸的找不到对应的解决办法 相关的国内外网站资料没有少折腾可都不行 还有的说修改项目属性 但这种方法只适合对具体的项目就行修改 在编译qt的时候就丈二和尚摸不着头脑 下面就介绍一
  • 分页显示该休矣

    当你有很多东西要显示给用户 而且内容多得远非一个屏幕可以放得下的时候 你会怎么办 很自然 你会想到分页 在2007年 Vitaly Friedman写了一篇文章叫 Pagination Gallery ExamplesAnd Good Pr
  • 【android】数据库升级完整解决方案

    作者 飞翔的猫咪 http flyingcat2013 blog 51cto com 7061638 1537074 原创作品 允许转载 转载时请务必以超链接形式标明文章 原始出处 作者信息和本声明 否则将追究法律责任 http flyin
  • 如何计算c++中开数组中占的内存

    如何计算c 中开数组中占的内存 引入 在比赛中一般都会有数组的身影 但是比赛时内存是一定的 若是操作不当 那么正解也会被数组而拖累 可是如何确保自己的数组占的内存的呢 首先要知道你自己开数组是的类型是不一样的内存的 也就是说类型不一样 内存
  • Android Studio操作SQLite数据库简要示例

    Android Studio操作SQLite数据库 主要分三步 1 创建数据库及数据表 2 写数据库表 3 读数据库表 下面用例子进行介绍 我们做一个简单的登记用户名及电话号码并进行显示的例子 首先创建EmptyActivity工程Test
  • [深入研究4G/5G/6G专题-34]: URLLC-5-《中国联通5G URLLC技术白皮书3.0版本》解读-1-业务场景

    目录 第1章 背景与URLLC的发展历程 1 1 URLLC的应用场景 1 2 URLLC的业务特点 第2章 URLLC的业务需求
  • 南京邮电大学操作系统复试

    目录 第 1 章 计算机系统概述 多道运行的特征 第 2 章 进程与线程 2 1 进程与线程 1 进程与程序 2 PID Process ID 进程ID 3 PCB Process Control Block 进程控制快 4 进程的特征 5
  • 【NAS工具箱】Pytorch中的Buffer

    Parameter 模型中的一种可以被反向传播更新的参数 第一种 直接通过成员变量nn Parameter 进行创建 会自动注册到parameter中 def init self super MyModel self init self p
  • 垃圾收集器知识点4:Java中垃圾收集器的实现

    目录 java8垃圾收集器组合一览 serial GC 串行GC 的实现 串行gc日志分析 Minor GC 小型GC Full GC 完全GC Parallel GC 并行GC 的实现 并行GC日志分析 Minor GC 小型GC Ful
  • 第二十九章、containers容器类部件QFrame框架部件详解

    一 概述 容器部件就是可以在部件内放置其他部件的部件 在Qt Designer中可以使用的容器部件有如下 容器中的Frame为一个矩形的框架对象 对应类QFrame QFrame类是PyQt中带框架部件的所有类的基类 如菜单 进度条 Lab
  • SQLServer 数据加密解密:常用的加密解密(一)

    都是基本示例 更多参考官方文档 1 Transact SQL 函数 2 数据库密钥 3 证书 4 非对称密钥 5 对称密钥 sql view plain copy drop table EnryptTest create table Enr
  • Win10 WSL运行docker报错:Cannot connect to the Docker daemon at unix:///var/run/docker.sock.

    我安装的子系统是Ubuntu 1804 安装docker步骤如下 sudo apt update 更新软件源 sudo apt install y docker io 安装docker sudo usermod aG docker leo
  • 3个技术男搞恋爱版ChatGPT,估值10亿美元

    过去几个月 我们见证了GPT从3 5到4 0 从只能做结构化搜索整合到接近人类思维的对话 我们还看到了 GPT逐步掌握画画 写作 剪辑 制表 做 PPT 等技能 最可怕的是AI的迭代速度 简直是一天一个样 这股这股前所未有的技术浪潮 一时间

随机推荐

  • sklearn中的LogisticRegression

    sklearn中的逻辑回归接口如下 sklearn linear model LogisticRegression penalty l2 dual False tol 0 0001 C 1 0 fit intercept True inte
  • [专利与论文-14]:研究员级(正高)高级工程师评审不通过的常见原因(实际案例)

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 专利与论文 14 研究员级 正高 高级工程师评审不通过的常见原因 实际案例 文火冰糖 王文兵 的博客 CSDN博客 作者主页 文火冰糖的硅基
  • 策略模式+工厂模式的使用

    在项目开发过程中 经常会遇到项目代码中充斥着大量的if else 每次增加类型都要整体代码逻辑看一遍才可以修改 如下代码 if wx equals type do else if zfb equals type do else if ban
  • JSONObject 与 JSON 互转

    使用目的 目前数据交互大多以 JSON 字符串为信息传输 主要格式有 age 22 name 李四 age 21 name 张三 最常见的应用场景是前后端对接 第三方平台文档对接 下面展示转换使用 一 引入 jar 此处引入 com ali
  • IMAU鸿蒙北向开发-2023年9月5日学习日志

    1 5种调试方式 1 1 Previewer 在侧边 Previewer 选项卡内可以预览Entry 如果要单独预览组件 可以在给组件加 Preview 装饰器 1 2 Local Emulator 本地模拟 1 3 Remote Emul
  • 测试框架pytest教程(6)钩子函数hook开发pytest插件

    pytest hook 函数也叫钩子函数 pytest 提供了大量的钩子函数 可以在用例的不同生命周期自动调用 比如 在测试用例收集阶段 可利用 hook 函数修改测试用例名称的编码 pytest的hook是基于Python的插件系统实现的
  • mac mini u盘安装系统_2020年mac系统下制作win10引导安装盘,亲测可用

    一 背景 最近组装了一台电脑 需要安装系统 由于家里只有一台Macbook pro 在网上找了很多关于mac环境下制作支持win10启动盘教程 尝试过下面几种方式都失败 即u盘插入后主板不会识别 无法自动安装 1 利用终端指令拷贝iso镜像
  • Linux提权之内核漏洞提权篇

    前言 在渗透过程中 有时利用某些漏洞可以获取一个低权限的用户 然后想办法提权 提升到root用户权限 从而控制整个系统 在获取到低权限shell后 通常会检查操作系统的发行版本 内核版本 老版本的系统可能会存在一些漏洞 于是我们可以利用这些
  • 点云处理,点云处理算法程序

    点云处理 算法程序代编 top5硕博团队 高质量的服务 基于pcl cgal程序代编 联系方式 q 958417691 或闲鱼id专业点云处理 1 点云分割 单木分割 林下地形提取 DEM制作 等高线制作 地形补洞 2 点云重建 多种方法点
  • H5页面调用扫一扫功能

    想要实现H5页面调用微信扫一扫功能 必须先了解微信JS SDK接口 企业号开发接口文档地址 https qydev weixin qq com wiki index php title E9 A6 96 E9 A1 B5 我们来看下使用的大
  • 将任意一个数解析为2的幂的和的方法

    将任意一个数解析为2的幂的和的方法 递归 规律 如给定 14 2 3 lt 14 lt 2 4 14中必有8 2 3 14 8 6 2 2 lt 6 lt 2 3 6中必有4 2 2 6 4 2 2 2 14 2 3 2 2 2 1 Par
  • 第36.1节 动画-刚体动画控制

    目录 本节功能 具体实现 存放动画 寻找动画 播放 暂停 复位 加速 减速 最后用一个事件响应来联接这一切 所有代码 本节功能 本节后几个章节会介绍和动画有关的课程 本节实现一个从3DMAX导出的地板破碎的动画的控制 这类动画叫做刚体动画
  • python对两个list取交集、并集、和异或

    第一种方法 使用python基本数据结构set集合 优点 集合运算长度可以不一致 运算效率高 缺点 两个进行运算的集合中不能够含有重复的元素 如果含有的话 转成set集合后 会自动去掉重复元素 a 1 2 3 b 1 2 6 9 12
  • MyBatis-Plus&Druid数据源理解

    SpringBoot集成MyBatis Plus 1 1MyBatis Plus简介 MyBatis Plus 简称 MP 是一个 MyBatis 的增强工具 在 MyBatis 的基础上只做增强不做改变 为简化开发 提高效率而生 1 12
  • Unity(Input.GetAxis和Input.GetAxisRaw)

    Input GetAxis 描述 数值返回是慢慢向上加的 1 gt 0 3 gt 1 类似于车慢慢加速的过程 Input GetAxisRaw 描述 数值返回是固定的是 1 gt 0 gt 1
  • undo表空间出现问题的几种情况与处理

    undo空间出现问题的处理 一 数据库正常关闭immediate或normal 创建pfile并使用pfile启动数据库 startup nomount create pfile from spfile shutdown abort sta
  • 【python】实现list除以一个数

    文章目录 新建一个list 存放数据 使用numpy np divide list如何除以一个数 有如下两种方法 import random my list random randint 0 100 for x in range 10 pr
  • mysql 页和叶子页_一看就懂的:MySQL数据页以及页分裂机制,别在说不会了

    下面我们就一起看下 究竟什么是MySQL的数据页 数据区等概念 二 数据页长啥样 数据页长下面这样 image png 三 什么是数据区 在MySQL的设定中 同一个表空间内的一组连续的数据页为一个extent 区 默认区的大小为1MB 页
  • MySQL Flashback拯救手抖党

    MySQL Flashback拯救手抖党 2019 06 12 黄子程 黄子程 黄子程 网易游戏资深运维工程师 曾参与多款网易代理游戏产品的运营维护工作 后逐渐转向数据库管理维护领域 目前主要工作方向为网易游戏 Relational DBa
  • unity3d 对大图额外加载

    加载 UI 背景大图 lua 使用 if self findBack image nil then resMgr UnLoadBigImage self findBack image self findBack image nil self