一.XLua环境配置
1.将XLua中 Plugin 和 XLua 复制到热更新的工程中,注意要放在 Assets 子目录
2.开启宏 HOTFIX_ENABLE
File--->bulidSetting--->playerSetting--->scriptsDefineSymbols
3 .Tools 工具文件夹 复制到Assets同级目录
4. 拷贝 unity 安装目录 ,找到下方文件(.dll)
(目录取决于自己安装unity的位置)
将上方文件(.dll)放入下方unity项目文件夹下
(目录取决于自己unity项目的位置)
二.Lua和C#的链接 步骤
1.清除C#和Lua链接文件
2.生成链接的中间文件
3.注入
三.XLua热更新流程
1.从项目启动,用C#开发
2.将来哪一块需要更新 [Hotfix] C# 方法(ShowPet)
①.引入命名空间 using XLua;
②.在需要更新的类上方加入标签 [Hotfix]
③.在需要更新的方法上方加入 [LuaCallCSharp] (下面提供了一个类和类里面的两个方法)
类:
方法:
注意:单例模式Lua不能识别,要转换为下方方法
④.生成Lua和C#链接的中间脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;
using System.IO;
public class FishHotFixTest : MonoBehaviour {
private LuaEnv luaEnv;
void Start () {
luaEnv = new LuaEnv();
luaEnv.AddLoader(MyLoader);
luaEnv.DoString(" require 'fishHotFix'"); //fishHotFix 要更新的逻辑,Lua文件
}
public byte[] MyLoader(ref string filepath)
{
//文件地址(根据自己文件夹位置写,这里我放在了桌面的fishHotfix文件夹中)
string path = @"C:UsersAdministratorDesktopfishHotfix" + filepath + ".lua.txt";
return System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(path));
}
private void OnDisable()
{
luaEnv.DoString(" require 'fishHotFixDispose'"); //fishHotFixDispose销毁虚拟机文件
luaEnv.Dispose();
}
}
⑤.注入
(注意:一旦更改C#脚本,需要重新进行下面操作)