使用Xlua 在Unity调用lua脚本 --------初级

首先到GitHub上下载xlua  https://github.com/Tencent/xLua    这个是腾讯推出的

下载完之后解包然后把xlua中Assets文件下的两个文件夹拖入unity中Assets文件下

然后里面有一些功能实例,可以看看,在这里就不细说了.

创建一个脚本,然后在创建一个 lua脚本,创建脚本前,我要说一下以免有些初学者不知道,unity呢!识别不了lua脚本,但是unity可以识别txt文档,所以创建脚本的时候就创建一个txt文档 例如:  文件名.lua.txt 

因为unity识别不了Lua脚本,所以在lua脚本的后添加一个扩展名.txt这样就可以在unity中识别      

然后就在002.lua.txt写一些字段 函数 什么的,在unity中使用xlua开始调用 把002.lua.txt放入Resources文件夹中方便使用

在lua中简单写了一些字段 与函数来调用

在unity中创建一个C#脚本然后通过LuaEnv来调用lua中的字段函数等

   LuaEnv env = null;  //实例一个lua虚拟机 
    void Start()
    {
        env = new LuaEnv();
        env.DoString("require '002'");// 获取Lua 脚本    env.Dostring("") 是调用lua中的输出

        int a = env.Global.Get<int>("a"); //获取002.lua中的字段a 并重新赋值
        Debug.Log("我是lua中变量"+a);
        string str =env.Global.Get<string>("str1");
        Debug.Log("我是lua中变量" + str);
        bool flag = env.Global.Get<bool>("flag");
        Debug.Log("我是lua中变量" + flag);
        Action funXlua = env.Global.Get<Action>("Lua_Fun"); //Lua_Fun是一个无参无返回值的函数
        funXlua();  

输出结果为:

第二个最后没输出'张',应该是我们没把002.lua这个文档的格式没改成UTF-8 所以才会出现三个'lll'

LUA: 指的是lua中的输出 env.Dostring("")

 在lua中没有类的概念,所以用table表代替,在lua脚本中定义一个table表然后在unity中调用

定义完后,在c#脚本中通过类来调用lua脚本table表中的元素字段函数

Person类:

[CSharpCallLua]   //映射Lua中的变量函数等都必须使用以[CSharpCallLua]标注的方可
class Person  //定义一个接受Lua变量的类 
{
    public string name;
    public int age;                                                                                                                                                                                                                                       
    public int age2;

}

[CSharpCallLua]
interface IPerson
{
    string name { get; set; }
    int age { get; set; }
    void Function(int a, int b);
    int Fun(int a, int b);
    string One(int a);
}

   }

    private void OnDestroy()
    {
        env.Dispose();//销毁虚拟机 如果不销毁,则会永远存在GC不会处理 
    }

 

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值