一 配置环境
1.从GitHub中下载xlua插件
xlua下载地址
2.将Asset下的子目录 拖到工程中
3.将Tools文件夹拖到项目中与Assets同级
4.将unity中的文件 拷贝到xlua中
(unity中的文件)
(拷贝到xlua中的文件)
unity中出现这样就说明 配置好了
Hotfix例子
1.创建关联脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;
using System.IO;
public class FishHotfixTest : MonoBehaviour {
LuaEnv env = null;
// Use this for initialization
void Start () {
env = new LuaEnv();
env.AddLoader(MyLoader);
//'为lua文件名'
env.DoString("require 'FishHotfix'");
}
// 链接lua脚本
public byte[] MyLoader(ref string filePath)
{
//地址自定义 lua文件 但是后缀名为.lua.txt
string path = @"C:\Users\Administrator\Desktop\" + filePath + ".lua.txt";
return System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(path));
}
// Update is called once per frame
void Update () {
}
private void OnDisable()
{
//更新后方法的dispose
env.DoString("require 'HotfixDisPose'");
env.Dispose();
}
}
2.为将要更新的脚本打补丁
需要更新的 脚本处理
- 引入命名空间 using Xlua
- 在需要热更新的类上加标签[hotfix]
- 在需要更新的方法上加[LuaCallCSharp]
- 生成lua和C#链接的中间脚本
- 注入
例将鼠标控制更新
更新前
桌面建立两个lua文件
1.(FishHotfix.lua.txt)内容如下
2.(HotfixDisPose.lua.txt)内容如下
<此脚本在链接脚本中调用>
注 : 没有此操作 工程关闭时 会报Dispose错误
最后
进行此操作更新完毕