当前位置: 首页 > news >正文

unity打AB包,AssetBundle预制体与图集(二)

第二步:加载AB包的资源,用于显示

using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.U2D;
using UnityEngine.UI;public class GameLaunch : MonoBehaviour
{public Button Btn;public Button Btn2;private string bundlePath = "";private string bundlePath2 = "";public Transform Parent_;public Image IMG;void Start(){bundlePath =Path.Combine(Application.streamingAssetsPath + "/AB/","prefab_ui") ;bundlePath2 =Path.Combine(Application.streamingAssetsPath + "/AB/","prefab_altlas") ;Btn.onClick.AddListener(() =>{//加载资源// 同时启动两个异步加载过程StartCoroutine(LoadAssetBundlesAsync());});Btn2.onClick.AddListener(() =>{StartCoroutine(LoadAssetBundlesAsync2());});}IEnumerator LoadAssetBundlesAsync(){// 同时启动两个异步加载过程yield return StartCoroutine(LoadAssetBundleAsync(bundlePath2, "_图集_AB", "Atlas_One","ui_frame_fight"));}IEnumerator LoadAssetBundlesAsync2(){// 同时启动两个异步加载过程yield return StartCoroutine(LoadAssetBundleAsync(bundlePath, "_UI_AB", "Prefab_One"));}IEnumerator LoadAssetBundleAsync(string path, string debugMessage, string assetName, string spriteName = null){AssetBundleCreateRequest request = AssetBundle.LoadFromFileAsync(path);// 等待加载完成yield return request;var myLoadedAssetBundle = request.assetBundle;if (myLoadedAssetBundle == null){Debug.LogError("Failed to load AssetBundle: " + debugMessage);}else{Debug.Log(debugMessage + "加载完成");if (debugMessage == "_UI_AB"){if (!string.IsNullOrEmpty(assetName)){GameObject prefab = myLoadedAssetBundle.LoadAsset<GameObject>(assetName);GameObject Clone = Instantiate(prefab); //prefab中有Imgs图片.sprite 在spriteAtlas里面,编辑器加载的图片是正确的,但是APK加载的Imgs图片.sprite = spriteAtlas图集Clone.transform.SetParent(Parent_);Clone.transform.localPosition = Vector3.zero;}}else if (debugMessage == "_图集_AB"){//用于检测该AB包中拥有的所有资源,如Atlas_Oneobject[] allAssets = myLoadedAssetBundle.LoadAllAssets();foreach (var asset in allAssets){Debug.Log("Asset in bundle: " + asset);}if (!string.IsNullOrEmpty(assetName)){// 从 SpriteAtlas 中获取 SpriteSpriteAtlas spriteAtlas = myLoadedAssetBundle.LoadAsset<SpriteAtlas>(assetName);// 获取 SpriteAtlas 中的所有 Sprite// Sprite[] sprites = new Sprite[spriteAtlas.spriteCount];// spriteAtlas.GetSprites(sprites);Sprite Sp = spriteAtlas.GetSprite(spriteName);//编辑器与APK加载的话,图片显示全都没问题IMG.sprite = Sp;}}}}
}

在这里插入图片描述
运行,点击Btn1 ,可以加载图片ui_frame_fight
在这里插入图片描述
点击Btn2,可以创建预制体Prefab_One
在这里插入图片描述
一如既往,还有疑问,就直接在评论区问,我会尽快回复的

相关文章:

unity打AB包,AssetBundle预制体与图集(二)

第二步&#xff1a;加载AB包的资源&#xff0c;用于显示 using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; using UnityEngine.Networking; using UnityEngine.U2D; using UnityEngine.UI;public class GameLaunch : MonoBe…...

【网络安全 --- web服务器解析漏洞】IIS,Apache,Nginx中间件常见解析漏洞

一&#xff0c;工具及环境准备 以下都是超详细保姆级安装教程&#xff0c;缺什么安装什么即可&#xff08;提供镜像工具资源&#xff09; 1-1 VMware 16.0 安装 【网络安全 --- 工具安装】VMware 16.0 详细安装过程&#xff08;提供资源&#xff09;-CSDN博客文章浏览阅读20…...

Python基础——注释、缩进、语法、标识符、关键字

注释 Python中单行注释用#表示&#xff0c;多行注释由3对双引号或单引号包裹&#xff1a;可以使用快捷键CTRLR进行注释 # 我是单行注释"""我是多行注释 """缩进 python使用“缩进”即一行代码前的空白区域确定代码之间的逻辑关系和层次关系。…...

排序算法的分析及实现

目录​​​​​​​ 1. 排序 1.1. 排序的概念 1.2. 排序的稳定性 1.3. 内部排序和外部排序 2. 直接插入排序 2.1. 直接插入排序 2.2. 直接插入排序的两种情况 1. 情况一 2. 情况二 2.3. 直接插入排序的单趟排序 2.4. 直接插入排序的完整实现 2.5. 直接插入排序的时…...

rancher或者其他容器平台使用非root用户启动jar

场景&#xff1a; java程序打成镜像&#xff0c;在rancher上运行&#xff0c;默认是root账户&#xff0c;发现hdfs或者hive不允许root账户操作&#xff1b;所以打算用费root账户启动jar&#xff0c;使其具有hive和hdfs的操作权限。 Dockerfile entrypoint.sh 思路就是上面这样…...

Scrapy使用和学习笔记

前言 Scrapy是非常优秀的一个爬虫框架&#xff0c;基于twisted异步编程框架。yield的使用如此美妙。基于调度器&#xff0c;下载器可以对scrapy扩展编程。插件也是非常丰富&#xff0c;和Selenium&#xff0c;PlayWright集成也比较轻松。 当然&#xff0c;对网页中的ajax请求…...

<sa8650> sa8650介绍

一、sa8650 描述 设备说明 QAM8650P/QAMSRV1H是高通公司的下一代Snapdragon高级驾驶员辅助系统(ADAS)模块,旨在实现卓越的性能和电源效率。 它已被开发为SEooC(上下文之外的安全元素),针对假定的ASIL B用例*。QAM8650P/QAMSRV1H模块的关键组件包括SA8650P/SRV1H SoC、PM…...

[架构之路-244]:目标系统 - 设计方法 - 软件工程 - 软件开发方法:结构化、面向对象、面向服务、面向组件的开发方法

目录 前言&#xff1a; 一、概述: 软件聚合的程度由简单到复杂 二、主要开发方法详见 2.1 结构化的开发方法 2.2 面对对象的开发方法 2.3 面向服务的开发方法 2.4 面向组件的开发方法 三、不同开发方法比较 3.1 结构化开发方法 3.2 面向对象(OOP)开发方法 3.3 面向服…...

Qt窗体自动销毁

Qt中通过对象树的方式&#xff0c;实现了窗体自动析构&#xff0c;只要我们使用得当&#xff0c;就能免去自己去释放窗体对象的内存&#xff0c;但是我们得清楚Qt窗体自动析构的机制&#xff0c;什么情况下能够自动析构&#xff0c;什么情况不能。操作不当的情况可能造成内存泄…...

制造业企业设备管理常见的三个问题及对应的解决方案

当今的市场如同茫茫大海&#xff0c;既充满机遇&#xff0c;也伴随着波动的风险。在现代制造业中&#xff0c;企业常常面临着各种挑战&#xff0c;这些挑战可能妨碍其发展和竞争力。但制造企业往往具备能够解决挑战的能力&#xff0c;借助软件工具的力量&#xff0c;可以更好地…...

linux文件目录

/bin 二进制可执行命令。该目录下存放着普通用户的命令 /boot 启动Linux的核心文件 /data 用户用于存放日志等数据的目录 /dev 系统的设备文件&#xff0c;即设备的驱动程序 /etc 系统所有的配置文件都在这个目录中 /home 用户主目录的基点 /lib 存放着和…...

流量卡是什么?流量卡为什么有虚量,51物联卡带你全面了解一下。

上个月在网上买了一张流量卡&#xff0c;用了之后才发现剩余流量和套餐不符&#xff0c;这种流量是虚的吗&#xff1f;还有必要接着使用吗&#xff1f;这是一个网友跟小编私信咨询的一个问题。 ​ 其实流量卡流量和套餐不符&#xff0c;这个问题是比较常见的一个问题&#xff…...

浅谈电力物联网时代物联网技术在电力系统中的应用

贾丽丽 安科瑞电气股份有限公司 上海嘉定201801 摘要&#xff1a;在电力系统建设中&#xff0c;物联网的应用不仅促进了我国电力工业的发展&#xff0c;而且对我国的物联网技术也起到了一定的促进作用。随着物联网技术应用于电力系统&#xff0c;推动了中国工业的快速发展。因…...

HTTP 状态代码 (Winhttp.h)

文章目录 对开发者有什么帮助状态码产生要求WinHTTP状态码推荐阅读 Microsoft Windows HTTP Services (WinHTTP) 的用户应使用最新版本的技术版本 5.1。 版本 5.0 不再受支持。 对开发者有什么帮助 HTTP状态代码&#xff08;HTTP status codes&#xff09;是Web开发中的标准返…...

开槌在即:陈可之油画|《赞红梅》

《赞红梅》 尺寸&#xff1a;38x30cm 陈可之2020年绘 “墙角数枝梅&#xff0c;凌寒独自开。遥知不是雪&#xff0c;为有暗香来。”梅花&#xff0c;迎雪吐艳&#xff0c;严寒飘香&#xff0c;被视为坚忍不拔、自强不息等精神品质的象征物。文学艺术史上&#xff0c;有众多以“…...

C++内存分配 new 和 delete

在 C 语言中&#xff0c;可以用库函数 malloc() 来分配内存&#xff1b;在 C 中仍然可以这样做&#xff0c;但 C 还有更好的方法——new 运算符 语法 类型* 指针名 new 类型;//可以赋初值 类型* 指针名 new 类型(初值); 类型* 指针名 new 类型{初值};//连续空间 类型*…...

蓝桥云课--1014 第 1 场算法双周赛

2-数树数【算法赛】&#xff08;找规律&#xff09; 一、题目要求 二、思路 由此可以推导出来&#xff0c;当s[i]L时&#xff0c;下一个编号当前编号*2-1&#xff1b;当s[i]R时&#xff0c;下一个编号当前编号*2&#xff1b; 三、代码 #include<bits/stdc.h> #define…...

管理类联考——写作——技巧篇——书写标点符号使用要求规范文档

写作答题卡书写标点符号使用要求规范文档 常用标点符号有逗号、句号、叹号、问号等 11 种&#xff0c;下面一一列举其用法和书写规范。 一、句号 用法&#xff1a;用于陈述句的末尾。 占格情况&#xff1a;占一格&#xff0c;写在格子左下方。 举例&#xff1a; 我看见妈妈走…...

快速解决mfc140u.dll丢失问题,找不到mfc140u.dll修复方法分享

在计算机使用过程中&#xff0c;我们可能会遇到各种问题&#xff0c;其中之一就是某些dll文件丢失。最近&#xff0c;我就遇到了一个关于mfc140u.dll丢失的问题。mfc140u.dll是Microsoft Foundation Class&#xff08;MFC&#xff09;库中的一个动态链接库文件&#xff0c;它包…...

福建地区等保测评怎么做

福建地区等保测评怎么做&#xff1f;福建地区等保测评是指在福建地区对网络安全等级保护进行评估的过程。网络安全已经成为现代社会一个重要的议题&#xff0c;各个行业和领域都面临着越来越多的网络安全风险和威胁。为了保护信息系统的安全性和可靠性&#xff0c;各地区都制定…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发&#xff0c;旨在打造一个互动性强的购物平台&#xff0c;让用户在购物的同时&#xff0c;能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机&#xff0c;实现旋转、抽拉等动作&#xff0c;增…...