美文网首页Unity技术分享
tolua调用c#函数及变量

tolua调用c#函数及变量

作者: 杰罗xr | 来源:发表于2018-05-19 14:39 被阅读9次

    比如说你要调用一个lua函数 但你想把自身传给lua函数
    让这个函数调用c# 类的其他函数以及变量

    首先是调用lua函数 比较简单不提及了

    以tolua例子CallLuaFunction 为例

    首先注意 Class.Func 和 Class:Func 这两种语法的区别 前面是调用静态函数 后面是调用非静态函数
    但可以用类的实例 直接 “ . ”调用静态变量以及非静态变量都可以用静态
    或者 直接用类名 . 调用静态函数以及变量

    首先将自己写的类 放到 CustomSettings 里 就是CallLuafunction
    BindType[] customTypeList
    放到这个数组里 注册进去供lua使用

    Lua代码

    function luaprint(callluafunc) --在CallLuafunc 中调用lua函数 把自己传给函数
        callluafunc:pr()  --非静态函数  
        callluafunc.StaticPr()  --静态函数
    end
    

    c#代码 CallLuaFunction.cs

    
    首先创建 LuaState lua 
    Lua.Start() 启动
    LuaBinder.Bind(lua)     /*绑定luastate 绑定生成的warp 类(应该是,理解的还不充分)*/
    DelegateFactory.Init();  /*这个也没理解 应该是要用LuaFunction 就要初始化吧*/
    LuaFunction Myluafunc = lua.GetFunction("luaprint");   /*得到lua函数*/
    Myluafunc.Call(this,true);   /* 这里的this 就是当前类CallLuaFunction*/
    
    再随便创建两个函数 一个静态一个非静态 
    public Static void StaticPr()
    {}
    public void pr()
    {}
    
    
    

    这样就可以做到 c#调用一个lua函数后 把自身传给lua 供lua调用

    相关文章

      网友评论

      • 达也酱:您好,您这文章事实上还是C#调用lua方法吧。
        杰罗xr:这个是先C#调用lua 同时 把c#实例传给lua 然后在lua里调用 C#函数 这个可能以前对Tolua理解不深 写的比较乱,不好意思

      本文标题:tolua调用c#函数及变量

      本文链接:https://www.haomeiwen.com/subject/ovgodftx.html