郑州网站推广信息,免费建简单网站,wordpress audaz主题,上海网站建设哪家企业警告#xff1a; spriteatlasmanager.atlasrequested wasn’t listened to while
条件一#xff1a;图片打图集里面去了 条件二#xff1a;然后图集打成AB包了 条件三#xff1a;UI预制体也打到AB包里面去了
步骤一#xff1a;先加载了图集 步骤二#xff1a;再加载UI预…警告 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.ActionSpriteAtlas callback){var sa Resources.LoadSpriteAtlas(tag);//加载你的图集资源callback(sa);//将图集返回}
}我前面的二有讲解怎么预加载图集。 可以先声明一个SpriteAtlas Sp ; 等你加载完之后将加载的图集赋值给声明的Sp 然后注意这个tag,他就是图集的名字。
还听不懂的话就看下面的大白话。
原理就是当一个UI被你加载出来的时候。 这个UI Image需要加载一个sprite到他上面显示 此时他就会发送一个事件RequestAtlas图集名带参回调 然后你通过他给你的图集名去找相应的图集然后通过这个回调接口还给他
我的案例参考 声明 初始化我的图集 通用的调用图集方法