如何拆解Unity 2022.3版本的AssetBundle

1)如何拆解Unity 2022.3版本的AssetBundle
2)Unity 2022 LTS版本的稳定性
3)关于AssetBundle禁用TypeTree之后的一些可序列化的问题


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

AssetBundle

Q:如何拆解Unity 2022.3及以上版本打出来的AssetBundle?AssetStudio只支持到2022.1,都不维护和更新了。

A1:可以参考:GitHub - AssetRipper/AssetRipper: GUI Application to work with engine assets, asset bundles, and serialized files

感谢zerolj@UWA问答社区提供了回答

A2:如果你习惯使用AssetStudio,可以试试我的Fork,目前支持到2022.3。

GitHub:https://github.com/zhangjiequan/AssetStudio
知乎:AssetStudio升级:支持到Unity 2022.3 - 知乎

感谢Jackie@UWA问答社区提供了回答


Platform

Q:想从Unity 2021 LTS升级到Unity 2022 LTS,想问下2022的稳定性怎么样?

主要想要的Feature是DOTS的Production Version和Material Variant。

A:DOTS 1.0和DOTS 1.1这两个版本,会导致开发过程中体验比较差(Editor卡、崩溃、莫名其妙编译错误等),对于大规模项目不友好。

运行时与真机的性能不一致,不同真机的性能不一致,需要尽早固化DOTS的核心需求代码进行兼容测试,主要是安卓大小核的问题。

DOTS 1.0至今没有很硬的上线项目,DOTS 0.51甚至更低版本的DOTS都有大DAU项目验证。资料稀少,势必会趟不少自己专属的坑,得有时间预算。

几个DOTS 1.0的功能坑:EntityGraphicAPI,在低端安卓上性能奇差,官方也没有解决的意愿,解决方案是手动修改基于GPU Instance的渲染管线。2D透明的排序有需求的需要魔改URP。

Physics模块如果只用碰撞检测不用物理模拟,建议自己重写,性能可以比自带的提升数十倍。

不要相信TransformAcc。在Entity Query时获取Mono脚本会产生巨量GC,自己魔改源码(很好找这个位置,就是它每次new了一个大数组)开发配套的池去解决这个问题。

其他的由于你自身原因写出来的指针Bug基本都是偶发崩溃,需要大量时间去排查,不按DOTS约定很容易写出数组越界,因为你不知道底层给你的什么块,你Filter之后是什么样,只能小心地去写。按照DOTS规定则会报出易于定位的错误。

林林总总加起来用哪个版本都需要时间去了解,致命坑已经罗列,希望有所帮助。

感谢刘泰言@UWA问答社区提供了回答


AssetBundle

Q:如果AssetBundle禁用了TypeTree,Unity在加载的时候会对其引用的脚本进行“签名”校验(Property Hash和FulIName),而包内的脚本信息只在打包的时候生成,并不能直接更新。因此,在禁用TypeTree的时候,貌似不能对可序列化脚本进行变动更新。

于是,想要咨询两个问题:
1、包内的脚本“签名”信息存放在哪里,存放了什么内容? 猜测是在assets/bin/Data,但具体的位置与内容不清楚。

2、能否在禁用TypeTree的情况下实现可序列化脚本的变化更新(自行保证代码与资源一致)。

A:如果有新增类,DLL,那么还需要更新xxxx_Data\ScriptingAssemblies.json和xxxx_Data\globalgamemanagers,否则就算libil2cpp.so和新的Bundle对上,也会检查不通过。

如果有新的RuntimeInitializeOnLoad函数,那么xxxx_Data\RuntimeInitializeOnLoads.json也要更新。否则相关函数就无法自动启动。

从理论上而言,只要不动到可序列化字段,那么脚本可以改可以更。如果可序列化字段变动了,那么TypeTree就变化,相应的TypeTreeHash也跟着变化,所以so更新以后,引擎就无法解析旧的Bundle。

感谢黄程@UWA问答社区提供了回答

封面图来源于网络


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

UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity 2022.3引入了一些新的导航功能,以帮助开发者更方便地为游戏添加导航系统。新版本中的导航系统改进了性能和功能,使其更加强大和灵活。 首先,Unity 2022.3引入了实时路径搜索功能。该功能可以根据场景中的物体位置和碰撞体等信息,在实时场景中进行路径搜索。这意味着开发者可以在游戏运行时动态计算角色或其他游戏实体的路径。这一功能对于实时策略游戏或动态变化的游戏环境非常有用。 其次,新版本的导航系统还改进了自动化的对话框生成功能。开发者可以通过简单的设置,自动生成适应场景的对话框来实现导航指示。这个功能可以大大减轻开发者的负担,并提高游戏中导航的质量。 此外,Unity 2022.3还提供了更多的导航算法选项。不同的游戏场景可能需要不同的导航算法来平衡效率和精度。新版本中的导航系统提供了多种算法选项,让开发者能够根据具体需求选择合适的算法。 最后,Unity 2022.3导航系统的改进还包括了对2D游戏的支持。早期的导航系统主要面向3D游戏,但新版本中加入了对2D游戏的导航支持。这使得开发者能够更方便地为2D游戏创建导航系统,为玩家提供更好的游戏体验。 总的来说,Unity 2022.3版本的导航系统带来了更多强大和灵活的功能,包括实时路径搜索、自动对话框生成、多种导航算法选项以及对2D游戏的支持。这些新功能使得开发者在为游戏添加导航系统时更加便捷,为玩家提供更好的游戏体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值