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预制体与图集(二)
第二步:加载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 : MonoBe…...
【网络安全 --- web服务器解析漏洞】IIS,Apache,Nginx中间件常见解析漏洞
一,工具及环境准备 以下都是超详细保姆级安装教程,缺什么安装什么即可(提供镜像工具资源) 1-1 VMware 16.0 安装 【网络安全 --- 工具安装】VMware 16.0 详细安装过程(提供资源)-CSDN博客文章浏览阅读20…...
Python基础——注释、缩进、语法、标识符、关键字
注释 Python中单行注释用#表示,多行注释由3对双引号或单引号包裹:可以使用快捷键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
场景: java程序打成镜像,在rancher上运行,默认是root账户,发现hdfs或者hive不允许root账户操作;所以打算用费root账户启动jar,使其具有hive和hdfs的操作权限。 Dockerfile entrypoint.sh 思路就是上面这样…...
Scrapy使用和学习笔记
前言 Scrapy是非常优秀的一个爬虫框架,基于twisted异步编程框架。yield的使用如此美妙。基于调度器,下载器可以对scrapy扩展编程。插件也是非常丰富,和Selenium,PlayWright集成也比较轻松。 当然,对网页中的ajax请求…...
<sa8650> sa8650介绍
一、sa8650 描述 设备说明 QAM8650P/QAMSRV1H是高通公司的下一代Snapdragon高级驾驶员辅助系统(ADAS)模块,旨在实现卓越的性能和电源效率。 它已被开发为SEooC(上下文之外的安全元素),针对假定的ASIL B用例*。QAM8650P/QAMSRV1H模块的关键组件包括SA8650P/SRV1H SoC、PM…...
[架构之路-244]:目标系统 - 设计方法 - 软件工程 - 软件开发方法:结构化、面向对象、面向服务、面向组件的开发方法
目录 前言: 一、概述: 软件聚合的程度由简单到复杂 二、主要开发方法详见 2.1 结构化的开发方法 2.2 面对对象的开发方法 2.3 面向服务的开发方法 2.4 面向组件的开发方法 三、不同开发方法比较 3.1 结构化开发方法 3.2 面向对象(OOP)开发方法 3.3 面向服…...
Qt窗体自动销毁
Qt中通过对象树的方式,实现了窗体自动析构,只要我们使用得当,就能免去自己去释放窗体对象的内存,但是我们得清楚Qt窗体自动析构的机制,什么情况下能够自动析构,什么情况不能。操作不当的情况可能造成内存泄…...
制造业企业设备管理常见的三个问题及对应的解决方案
当今的市场如同茫茫大海,既充满机遇,也伴随着波动的风险。在现代制造业中,企业常常面临着各种挑战,这些挑战可能妨碍其发展和竞争力。但制造企业往往具备能够解决挑战的能力,借助软件工具的力量,可以更好地…...
linux文件目录
/bin 二进制可执行命令。该目录下存放着普通用户的命令 /boot 启动Linux的核心文件 /data 用户用于存放日志等数据的目录 /dev 系统的设备文件,即设备的驱动程序 /etc 系统所有的配置文件都在这个目录中 /home 用户主目录的基点 /lib 存放着和…...
流量卡是什么?流量卡为什么有虚量,51物联卡带你全面了解一下。
上个月在网上买了一张流量卡,用了之后才发现剩余流量和套餐不符,这种流量是虚的吗?还有必要接着使用吗?这是一个网友跟小编私信咨询的一个问题。 其实流量卡流量和套餐不符,这个问题是比较常见的一个问题ÿ…...
浅谈电力物联网时代物联网技术在电力系统中的应用
贾丽丽 安科瑞电气股份有限公司 上海嘉定201801 摘要:在电力系统建设中,物联网的应用不仅促进了我国电力工业的发展,而且对我国的物联网技术也起到了一定的促进作用。随着物联网技术应用于电力系统,推动了中国工业的快速发展。因…...
HTTP 状态代码 (Winhttp.h)
文章目录 对开发者有什么帮助状态码产生要求WinHTTP状态码推荐阅读 Microsoft Windows HTTP Services (WinHTTP) 的用户应使用最新版本的技术版本 5.1。 版本 5.0 不再受支持。 对开发者有什么帮助 HTTP状态代码(HTTP status codes)是Web开发中的标准返…...
开槌在即:陈可之油画|《赞红梅》
《赞红梅》 尺寸:38x30cm 陈可之2020年绘 “墙角数枝梅,凌寒独自开。遥知不是雪,为有暗香来。”梅花,迎雪吐艳,严寒飘香,被视为坚忍不拔、自强不息等精神品质的象征物。文学艺术史上,有众多以“…...
C++内存分配 new 和 delete
在 C 语言中,可以用库函数 malloc() 来分配内存;在 C 中仍然可以这样做,但 C 还有更好的方法——new 运算符 语法 类型* 指针名 new 类型;//可以赋初值 类型* 指针名 new 类型(初值); 类型* 指针名 new 类型{初值};//连续空间 类型*…...
蓝桥云课--1014 第 1 场算法双周赛
2-数树数【算法赛】(找规律) 一、题目要求 二、思路 由此可以推导出来,当s[i]L时,下一个编号当前编号*2-1;当s[i]R时,下一个编号当前编号*2; 三、代码 #include<bits/stdc.h> #define…...
管理类联考——写作——技巧篇——书写标点符号使用要求规范文档
写作答题卡书写标点符号使用要求规范文档 常用标点符号有逗号、句号、叹号、问号等 11 种,下面一一列举其用法和书写规范。 一、句号 用法:用于陈述句的末尾。 占格情况:占一格,写在格子左下方。 举例: 我看见妈妈走…...
快速解决mfc140u.dll丢失问题,找不到mfc140u.dll修复方法分享
在计算机使用过程中,我们可能会遇到各种问题,其中之一就是某些dll文件丢失。最近,我就遇到了一个关于mfc140u.dll丢失的问题。mfc140u.dll是Microsoft Foundation Class(MFC)库中的一个动态链接库文件,它包…...
福建地区等保测评怎么做
福建地区等保测评怎么做?福建地区等保测评是指在福建地区对网络安全等级保护进行评估的过程。网络安全已经成为现代社会一个重要的议题,各个行业和领域都面临着越来越多的网络安全风险和威胁。为了保护信息系统的安全性和可靠性,各地区都制定…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
