比如说你要调用一个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调用
网友评论