Unity Xlua教程 之 C#使用接口获取Lua的内容

2025-11-25 17:47:01

1、打开Unity,新建一个空工程,具体如下图

Unity Xlua教程 之 C#使用接口获取Lua的内容

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

Unity Xlua教程 之 C#使用接口获取Lua的内容

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

Unity Xlua教程 之 C#使用接口获取Lua的内容

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

Unity Xlua教程 之 C#使用接口获取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”文本,具体如下图

Unity Xlua教程 之 C#使用接口获取Lua的内容

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

Unity Xlua教程 之 C#使用接口获取Lua的内容

8、“CSharpCallLua.lua.txt”具体内容如下:

person = {

name = "Apple",

age = 12,

Add = function (self,a,b)

print("a+b = "..a+b)

end

}

9、编译正确,回到Unity中,运行场景,控制台打印结果如下

Unity Xlua教程 之 C#使用接口获取Lua的内容

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

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢