美文网首页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调用

相关文章

  • tolua调用c#函数及变量

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

  • ToLua的Example示例学习笔记03_CallLuaFun

    展示了C#如何调用Lua的函数。 「1」代码 操作代码如下: 「2」需要了解的部分 ToLua通过LuaFunct...

  • 调用tolua变量

    LuaStatelua=newLuaState(); lua.Start(); //先启动lua环境 lua["O...

  • 02 函数

    1.类型 回调函数 变量函数:支持使用定义变量加+()方式调用函数; 匿名函数:函数赋值给变量,通过变量调用,同上...

  • ToLua 笔记

    ToLua 下载及导入 ToLua 下载 :https://github.com/topameng/tolua 下...

  • Lua与C相互调用

    Lua调用C engine->getLuaStack(); tolua_open(L); tolua_module...

  • C#调用OpenCV函数的实现

    C#调用OpenCV函数的实现步骤:1、C++编写调用OpenCV函数的方法,编译成dll;2、C#引用C++生成...

  • 函数式编程

    高阶函数 变量可以指向函数 变量f指向了abs函数本身。直接调用abs()函数和调用变量f()完全相同。 函数名也...

  • 2002.C++BASE-构造函数、析构函数

    转:C++继承中构造函数、析构函数调用顺序及虚析构函数 1.构造函数 大家都知道构造函数里就可以调用成员变量,而继...

  • 聊一聊Block(二)

    函数内定义的变量叫做局部变量,函数外部定义的变量叫做全局变量。 block封装了函数调用,以及函数调用环境的oc对...

网友评论

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

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

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