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

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

警告:
spriteatlasmanager.atlasrequested wasn’t listened to while

条件一:图片打图集里面去了
条件二:然后图集打成AB包了
条件三:UI预制体也打到AB包里面去了

步骤一:先加载了图集
步骤二:再加载UI预制体

结果一:发现UI预制体的Image没有图片/图片错乱/图片是一整张图集,并且发出上面的警告。

原因是UI预制体里面的UI的图片已经找不到他对应的图集了;

解决方案是根据官网提供的方法:

using UnityEngine;
using UnityEngine.U2D;public class AtlasLoader : MonoBehaviour
{void OnEnable(){SpriteAtlasManager.atlasRequested += RequestAtlas;//设置好监听}void OnDisable(){SpriteAtlasManager.atlasRequested -= RequestAtlas;}void RequestAtlas(string tag, System.Action<SpriteAtlas> callback){var sa = Resources.Load<SpriteAtlas>(tag);//加载你的图集资源callback(sa);//将图集返回}
}

我前面的二,有讲解怎么预加载图集。
可以先声明一个SpriteAtlas Sp ;
等你加载完之后,将加载的图集赋值给声明的Sp
然后注意,这个tag,他就是图集的名字。

还听不懂的话,就看下面的大白话。

原理就是,当一个UI被你加载出来的时候。
这个UI Image需要加载一个sprite到他上面显示,
此时他就会发送一个事件RequestAtlas(图集名,带参回调);
然后,你通过他给你的图集名,去找相应的图集,然后通过这个回调接口,还给他

我的案例参考
声明
在这里插入图片描述
初始化我的图集
在这里插入图片描述
通用的调用图集方法
在这里插入图片描述

在这里插入图片描述

http://www.lryc.cn/news/222256.html

相关文章:

  • 在Javascript中为什么 0.1+0.2 不等于0.3 ? 源代码详细解析
  • MATLAB|热力日历图
  • 《golang设计模式》第三部分·行为型模式-05-仲裁者/中介模式(Mediator)
  • 7天入门python系列之准备工作
  • Go语言~反射
  • 详解交叉验证中【KFold】【Stratified-KFold】【StratifiedShuffleSplit】的区别
  • 数学建模比赛中常用的建模提示词(数模prompt)
  • Spark 新特性+核心回顾
  • STM32 TIM定时器,配置,详解(1)
  • Helix Toolkit:为.NET开发者带来的3D视觉盛宴
  • PHP分类信息网站源码系统 电脑+手机+微信端三合一 带完整前后端部署教程
  • 2023年辽宁省数学建模竞赛B题数据驱动的水下导航适配区分类预测
  • 完蛋!百融云被大阳线包围了!
  • 数据结构 编程1年新手视角的平衡二叉树AVL从C与C++实现③
  • 数据可视化PCA与t-SNE
  • Kubernetes rancher、prometheus、ELK的安装
  • 为什么我们要努力的学习编程?初学编程从哪里开始学起?
  • ffmpeg 从内存中读取数据(或将数据输出到内存)
  • Flink(一)【WordCount 快速入门】
  • 【Redis】hash数据类型-常用命令
  • 【大数据】Apache NiFi 数据同步流程实践
  • git怎么使用 拉取代码
  • Apple :苹果将在明年年底推出自己的 AI,预计将随 iOS 18 一起推出
  • 数据结构-双向链表
  • CV计算机视觉每日开源代码Paper with code速览-2023.11.6
  • GB28181学习(十五)——流传输方式
  • 【Linux】:初识git || centos下安装git || 创建本地仓库 || 配置本地仓库 || 认识工作区/暂存区(索引)以及版本库
  • Vue 3 中,watch 和 watchEffect 的区别
  • 鲜花展示服务预约小程序的效果如何
  • Linux下多个盘符乱的问题处理