头图

1)使用Addressables+SpriteAtlas打包产生冗余
2)使用SBP打AssetBundle脚本引用丢失
3)Unity构建后处理(IPostprocessBuildWithReport等接口)抛出异常后,构建不会停止
4)Unity 2022.3.0版本使用Occlusion,PC运行良好但是安卓手机无效


这是第400篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。

UWA社区主页:community.uwa4d.com
UWA QQ群:793972859

AssetBundle

Q:问题描述:
1. 将SpriteAtlas单独打成一个Group,结果其他AssetBundle冗余了png。
2.将SpriteAtlas + 这个SpriteAtlas的png放到一个Group中,其他AssetBundle不冗余png了,但是这个Group资源Double了。

注:项目中直接使用的是png的Sprite,而不是在SpriteAtlas中Get Sprite。

A:其实是Unity的Bug,准确地说是SBP的Bug。

未更新到最新的可以参考以下文章,或者直接更新到最新。
https://zhuanlan.zhihu.com/p/586918159

感谢题主夏霖锐@UWA问答社区提供了回答

AssetBundle

Q:最近项目实验升级ScriptableBuildPipeline打包AssetBundle(之前使用的是BuildIn构建管线)。使用的Unity为2022.3,SBP版本为2.1.4。

结果发现打出的UI AssetBundle中,部分NGUI的脚本丢失引用了,丢的最多的是UIButton。但也不是所有UI都会丢失,有的就正常。BuildIn管线打包也正常。

真机上加载资源的时候会报错:
Error: A scripted object (script unknown or not yet loaded) has a different serialization layout when loading. (Read 32 bytes but expected 8136 bytes)

Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts?

UnityEngine.AssetBundle:LoadAsset(String)

使用AssetStudio解包AssetBundle,发现脚本的m_PathId为0。求助,这可能是哪的问题?

针对以上问题,有经验的朋友欢迎转至社区交流:
https://answer.uwa4d.com/question/66babdd6682c7e5cd61bf8ae

Editor

Q:Unity构建后处理(IPostprocessBuildWithReport等接口)抛出异常后,构建不会停止。

有什么比较好的方法,能在后处理过程中发生异常时,立即让构建停止并失败。无需关心Build Report中的结果,只是希望能让整体构建对外抛出异常。

A:执行一下“AssetDatabase.Refresh();”就停止打包了。

感谢夏霖锐@UWA问答社区提供了回答

AssetBundle

Q:Unity 2022.3.0版本使用Occlusion,场景是打成AssetBundle来加载的,PC上也是一样加载安卓平台的AssetBundle来加载场景,OC数据是跟着第一个激活的场景加载的,在PC上运行良好,但是上了手机就一点效果没有,管线是URP。请问这是什么情况呢?

针对以上问题,有经验的朋友欢迎转至社区交流:
https://answer.uwa4d.com/question/66bca1f6682c7e5cd61bf8b5

封面图来源于网络


今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。

UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:793972859


侑虎科技
62 声望21 粉丝

UWA官网:[链接]