ToLua lua方法转c#委托类型
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>接收委托,不明所以


首页 我的博客
粤ICP备17103704号