Unity热更新技术选择

Unity热更新技术选择

最近找工作,发现很多公司都需要用Lua,本身我也用过Lua,虽然是写一些按键精灵之类的脚本时用的。

我之前是学java的,java的热更新方法有两种,热加载、热部署。

热加载:不停服务器进行热更新,但如果重新加载可能会导致数据丢失,因此采用只更新方法。

热部署:通过一个线程将所有class文件进行更新后重启应用,更新内容不受限制,但需要短暂关闭服务器。

对于Unity而言,如果是桌面应用,应该可以支持整个版本对照更新,但对于移动端的处理,便不是太清楚。

网上查看的方案有dll文件转为byte进行动态加载(iOS不支持),通过将部分代码逻辑在脚本(lua、js)里写,再由dll去解析文件。

其unity实现的方案都不是很完美,对于开发而言,都增加其学习成本(我都在怀疑Unity是不是最好的选择了,热更新可能是用Unity做开发一直困扰的问题)

使用 IL2CPP 构建项目时所采取的自动步骤的图表

Lua热更新方案

ulua、tolua、xlua、slua、cs2lua等

DLL热更新方案

ILRuntime

其他热更新方案

Apple Juice(js)

JSBinding+SharpKit(C#转Js)

InjectFix(直接在Unity工程上修改C#即可更新)

其他游戏引擎热更新方案

CocosCreator热更新

ue4

写在最后,unity是个好工具,但不完美。但愿能多用几年。

posted @ 2022-02-16 21:14  LDnanchao  阅读(421)  评论(0编辑  收藏  举报