Unity3d toLua# 框架学习 -- Function

toLua的第三个案例是关于如何在c#中调用Lua函数的
一、LuaTable.GetLuaFunction()与LuaState.GetFunction()
具体地调用方法如下:

	LuaTable table = new LuaTable();
	LuaFunction func = table.GetLuaFunction("Function_Name");
	
	LuaState lua = new LuaState();
	LuaFunction func = lua.GetFunction("Function_Name");

二、GetFunction的执行流程
1.首先该方法会从funcMap这个字典中查找对应的方法,获取该方法的弱引用,并检查其状态(是否为游离态)。如果是非游离状态,则获取该函数的强引用,并再次检查函数的状态。若再次为true,则从GC列表中删除该方法并返回该函数,否则从funcMap中删除该方法。
Unity3d toLua# 框架学习 -- Function_第1张图片

2.若并未从funcMap中获取到函数,则执行PushLuaFunction方法,该方法会检测对应的持有者是否存在,并检测该方法是否为lua的function,然后进行压堆栈。

你可能感兴趣的:(unity,tolua,unity,c#,tolua)