项目开发日志:Build AssetBundle——SpriteAtlas(还是有些疑惑)

Posted thechenlin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目开发日志:Build AssetBundle——SpriteAtlas(还是有些疑惑)相关的知识,希望对你有一定的参考价值。

项目信息:
   平台-android
   Unity编辑器版本-2018.2.5f1
 
状况1:真机状况下引用到图集下的sprite的UI显示出错。
在我们的测试下发现了以下两个解决方案:
    1.在加载相应UI前,将sprite所属图集(spriteAtlas)提前加载到内存中。(相当麻烦,你得知道自己的sprite属于哪个图集,并且需要相应的一套资源加载的框架)。
    2.调用unity提供的回调,手动定位加载相应图集。(untiy2018以后才提供用协程异步加载图集)
技术分享图片
接下来是我疑惑的原因:
 
测试记录:unity2017.3.0f3
SpriteAtlas打AB包:
    UnityEditor,勾选Include in Build,不注册atlasRequested,加载带Image的UI预制体,正常显示
    UnityEditor,不勾选Include in Build,不注册atlasRequested,加载带Image的UI预制体,不显示显示,并警告SpriteAtlasManager.atlasRequested wasn‘t listened to while RGB requested.
 
    UnityEditor,勾选Include in Build,注册atlasRequested,加载带Image的UI预制体,正常显示,
但不触发atlasRequested事件。
    UnityEditor,不勾选Include in Build,注册atlasRequested,加载带Image的UI预制体,正常显示,并触发atlasRequested事件。
 
    Android真机,勾选Include in Build,不注册atlasRequested,加载带Image的UI预制体,正常显示
    Android真机,不勾选Include in Build,不注册atlasRequested,加载带Image的UI预制体,正常显示显示图片(奇怪)
 
    Android真机,勾选Include in Build,注册atlasRequested,不加载带Image的UI预制体,正常显示图片,不触发atlasRequested事件。
    Android真机,不勾选Include in Build,注册atlasRequested,不加载带Image的UI预制体,正常显示图片,但也不触发atlasRequested事件(奇怪)
 
 
我们项目Unity2018在大量UI(勾了Include in Build)的时候有时候会出现显示错误,注册事件后恢复正常。所以这里当作一个unity的BUG?
 

以上是关于项目开发日志:Build AssetBundle——SpriteAtlas(还是有些疑惑)的主要内容,如果未能解决你的问题,请参考以下文章

Unity游戏开发AssetBundle杂记--AssetBundle的二三事

Unity3d 使用Assetbundle合并项目的几点注意

AssetBundle粒度与分配策略

unity3d开发2d游戏中Assetbundle有啥作用

assetbundle是啥文件

unity热更新AssetBundle框架设计_框架篇