private string luaString = @"
function testFunc(num)
return num*2
end
t = {}
t.testFunc = testFunc
";
private LuaFunction luaFunc;
void Start () {
LuaState lua = new LuaState();
lua.Start ();
lua.DoString (luaString);
luaFunc = lua.GetFunction ("testFunc");
DelegateFactory.Init ();//委托工厂初始化
Func<int,int> funcDel = luaFunc.ToDelegate<Func<int,int>> ();
int s3 = funcDel(8888888);
Debug.Log (s3);
//释放资源
}lua方法转成c#委托,要先调用DelegateFactory.Init()方法初始化,没有调用时会报错
使用LuaFunction的ToDelegate方法转换,泛型参数表示要转换的委托类型
这里委托类型用的是内置的Func有返回值,lua代码中的参数返回的是数值类型,我说了可以用string来接,但是这里不行,就算是把lua方法的返回值改成string类型,同样不行,就是说不能用Func<...,string>接收委托,不明所以