1)使用Addressables+SpriteAtlas打包产生冗余
2)使用SBP打AssetBundle脚本引用丢失
3)Unity构建后处理(IPostprocessBuildWithReport等接口)抛出异常后,构建不会停止
4)Unity 2022.3.0版本使用Occlusion,PC运行良好但是安卓手机无效
这是第400篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。
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。求助,这可能是哪的问题?
针对以上问题,有经验的朋友欢迎转至社区交流:
UWA问答 | 游戏开发者互动问答社区 | 侑虎科技
Editor
Q:Unity构建后处理(IPostprocessBuildWithReport等接口)抛出异常后,构建不会停止。
有什么比较好的方法,能在后处理过程中发生异常时,立即让构建停止并失败。无需关心Build Report中的结果,只是希望能让整体构建对外抛出异常。
A:执行一下“AssetDatabase.Refresh();”就停止打包了。
感谢夏霖锐@UWA问答社区提供了回答
AssetBundle
Q:Unity 2022.3.0版本使用Occlusion,场景是打成AssetBundle来加载的,PC上也是一样加载安卓平台的AssetBundle来加载场景,OC数据是跟着第一个激活的场景加载的,在PC上运行良好,但是上了手机就一点效果没有,管线是URP。请问这是什么情况呢?
针对以上问题,有经验的朋友欢迎转至社区交流:
UWA问答 | 游戏开发者互动问答社区 | 侑虎科技
封面图来源于网络
今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。
UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com