Unity Xlua教程 之 C#使用接口获取Lua的内容
1、打开Unity,新建一个空工程,具体如下图

2、在百度上搜索下载XLua,导入Unity工程中,具体如下图

3、在工程中,新建一个脚本,可以命名为“CSharpCallLua”,双击脚本或者右键“Open C# Project”打开脚本,具体如下图

4、在打开的脚本“CSharpCallLua”编写代码,首先引入XLua命名空间,然后设置Lua环境变量,接着获取“CSCallLua.lua.txt”Lua脚本内容,随后使用自定义的接口接收lLua的内容,打印接收的内容,并修改其中的内容,再次打印(注意:C# 接口调用Lua时,修改C# 从Lua获取到的参数值,Lua中的也会对应变化),具体代码和代码说明如下图

5、“CSharpCallLua”脚本的具体内容如下:
using UnityEngine;
using XLua;
public class CSharpCallLua : MonoBehaviour {
private LuaEnv luaEnv;
// Use this for initialization
void Start () {
luaEnv = new LuaEnv();
luaEnv.DoString("require'CSharpCallLua'");
IPerson ip = luaEnv.Global.Get<IPerson>("person");
print(ip.name + " " + ip.age);
ip.name = "View";
print(ip.name + " " + ip.age);
luaEnv.DoString("print(person.name)");
ip.Add(1,2);
}
[CSharpCallLua]
interface IPerson {
string name { get; set; }
int age { get; set; }
void Add(int a,int b);
}
private void OnDestroy(){
luaEnv.Dispose();
}
}
6、脚本编译正确,回到Unity界面,在场景中新建一个“GameObject”,把“MyCSCallLua”挂载上去,并在工程中在新建一个“Resources”文件夹,新建一个“CSharpCallLua.lua.txt”文本,具体如下图

7、在“CSharpCallLua.lua.txt”编写代码,注意表中哥哥参数逗号隔开,创建如下图的函数时,为了方便C#调用,第一个参数需带“Self”,具体代码和代码说明如下图

8、“CSharpCallLua.lua.txt”具体内容如下:
person = {
name = "Apple",
age = 12,
Add = function (self,a,b)
print("a+b = "..a+b)
end
}
9、编译正确,回到Unity中,运行场景,控制台打印结果如下

10、到此,《Unity Xlua教程 之 C#使用接口获取Lua的内容》讲解结束,谢谢