Unity热更新技术选择
Unity热更新技术选择
最近找工作,发现很多公司都需要用Lua,本身我也用过Lua,虽然是写一些按键精灵之类的脚本时用的。
我之前是学java的,java的热更新方法有两种,热加载、热部署。
热加载:不停服务器进行热更新,但如果重新加载可能会导致数据丢失,因此采用只更新方法。
热部署:通过一个线程将所有class文件进行更新后重启应用,更新内容不受限制,但需要短暂关闭服务器。
对于Unity而言,如果是桌面应用,应该可以支持整个版本对照更新,但对于移动端的处理,便不是太清楚。
网上查看的方案有dll文件转为byte进行动态加载(iOS不支持),通过将部分代码逻辑在脚本(lua、js)里写,再由dll去解析文件。
其unity实现的方案都不是很完美,对于开发而言,都增加其学习成本(我都在怀疑Unity是不是最好的选择了,热更新可能是用Unity做开发一直困扰的问题)
使用 IL2CPP 构建项目时所采取的自动步骤的图表
Lua热更新方案
DLL热更新方案
其他热更新方案
Apple Juice(js)
JSBinding+SharpKit(C#转Js)
InjectFix(直接在Unity工程上修改C#即可更新)
其他游戏引擎热更新方案
写在最后,unity是个好工具,但不完美。但愿能多用几年。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)