前言
使用Xlua可以用lua语言覆盖CS脚本的内容。
这里贴出官方的热更新教程~
https://github.com/Tencent/xLua/blob/master/Assets/XLua/Doc/hotfix.md
然后以下是本文大致的实现步骤:
1. 这里使用AB包把需要修改的物体对象资源、要覆盖CS脚本的lua文件打包
2. 客户端从服务器下载ab包,然后把新ab包缓存在本地,直到服务器下一次更新ab包
3. 然后客户端用以前写好的CS脚本来从ab包获取lua文本,放到本地沙盒路径,然后再执行lua文本内容
4. lua文本里可以继续从ab包缓存里获取其他资源,并对原CS脚本进行覆盖来修改bug
准备
准备阶段,也就是正常的用C#编码阶段,也可以说是作预处理阶段,发布游戏之前,下次客户端更新之前。
设置HotFix
设置[LuaCallSharp]
1. 在需要更新的类上加上[Hotfix] ,这个类需要提前预判,一般来说只更新UI部分,一般不更新物体,数据类
2. 在可能更新的类方法中前[LuaCallCsharp]
如:
[Hotfix]
public class BeHotFixA : MonoBehaviour {
public int num1 = 100;
private int num2 = 200;
[LuaCallCSharp]
void Update () {
if (Input.GetMouseButtonDown (0)) {
GameObject go =