写要发上博客的年终总结的时候,才意识到,之前自己写在本地的年终总结其实是工作汇报。
2024年更新日志
MainChange-主要收获
做事情就是确认目标,找到路径,对比成本,随后抵达终点的过程。
1.思路改变 最大的感悟是:电脑是不会骗你的。如果结果不对,那一定是流程有问题——要么输入漏了条件,要么处理逻辑有漏洞。只要顺着数据流一步步查,总能找到原因。
2.工作变化 今年也是正式当“主程”的一年,审代码背锅一条龙,但总感觉受益很小,怎么管人,怎么当管理还是没什么起色。 进入了一种:“能力不够,但也没有进修目标”的情况,今年打算补基础知识比如C++和算法的知识。底子很差。
3.对人交接 还有对人沟通交接方面。曾经以为,只要自己真诚、讲逻辑,事情就能顺利推进。后来发现,每个人的目标不一样,解决问题前得找到共同利益点。 不是所有人都能表达清楚自己的需求,甚至会隐藏,所以先摸清楚再做更好。
4.自己项目 最后就是自己项目的问题了。以前写小Demo,做完就扔在硬盘里吃灰,后来和同事聊天,同事建议我无论做成什么样子,都发出来,让这些成果产生效用。 所以今年也是第一次在B站发了自己做的Demo,虽然不打算继续做下去了,但也算是"Release"了。下一年的目标就是做一款上Steam的游戏了。
Feature - 学会了什么
- 基于Addressable实现资源热更新流程
- 反编译AAR改第三方插件
- 用WinMerge对比差异
- 需求实现思路以及Bug排查思路有进步
Bugfix - 踩了什么坑
- AddressableSettings在更新Addressable版本的时候要注意重新生成
- 由于Addressable相关的窗口都是在配置AddressableSetting.asset里面的内容,在Addressable版本升级有改动到这个配置的时候,不同版本序列化的Key不一样,一些自动化脚本也要同步修改。
- Addressable生成热更资源受行尾因素和编码格式影响
- Addressable打热更包会做一次CheckContentUpdate,由于项目早期没有对文件的行尾做约束,导致同样的文件在不同电脑上行尾不一致,Unity算出来的hash不一样就认为有变更了。可以采用.gitattributes去约束将所有可以文本编辑的内容都以一个统一的行尾解决,UTF 8和UTF 8 BOM也不一样的喔。
- Addressable打更新包会错误移除一些本地需要使用的包体
- 构建UpdateBuild之前最好将Library里面Addressable打的本地包先备份移除,对比过一些不相关的内容也被移除掉了,即使runtime要用。
- Addressable的批量资源加载对于使用不同的MergeMode会走向完全不一样的逻辑
- 从1.18-1.21版本都无法加载任何贴图,源码中底层是有两套set的,Texture2D和Sprite,两个Set都能通过这个Key获得资源所以判断为复数类型,无法返回资源。![[920ed6c0acd5be09cdb3717a97e53ede_MD5.png]]
- 闰年需要特殊处理,泰国的年历有一种特殊的算法,公历年+543=佛历年,从微软的API获取的本地时间会有这种情况。