前言
现在有许多Unity游戏都采用了热更新的方式更新内容,最普通的热更方式就是用lua脚本,那么在设计热更方式时,哪些内容需要用lua来写,哪写用C#来写?热更新如何架构?更新流程如何设计呢?
哪些内容用lua来写
一般来说凡是效率相关的(比如地图排序,寻路),平滑显示相关的(比如人物移动,头顶血条位置)都用c#写,凡是涉及到服务器通信,逻辑状态的,都在lua写。或是经常变动的逻辑,比如活动相关的逻辑都用lua来写。
如何架构
笔者觉的,热更架构应该设计成可插拔的,即最好lua部分对整个项目来说是透明的,这样是最灵活的一种机制,可以随时切换,C#部分可以随时替换,而不用提前设计好哪些要用lua来代替,哪些要用lua修bug.
更新流程
更新流程比较简单,和assetbundle的更新流程基本差不多。即打包成assetbundle->发现最新下载->覆盖本地->进入游戏
总结
以上是一些大概的总结,之后笔者专门讲一下实现篇