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"); luaFunc.BeginPCall (); luaFunc.Push (2000);//参数的推入 luaFunc.PCall ();//调用 int s4 = (int)luaFunc.CheckNumber ();//获取返回值 luaFunc.EndPCall ();//结束释放资源 Debug.Log (s4); //清理 }
据说这种调用方法是不会产生内存垃圾的,但是不方便使用