/// <summary> /// 将函数对象和参数压入栈顶,返回函数参数个数 /// </summary> /// <param name="a"></param> /// <param name="b"></param> /// <returns></returns> private int PushArgAndFunc(int a, int b) { if (b >= 1) { for (int i = a; i < a + b; i++) { luaState.PushValueFromIndex(i); } return(b - 1); } // b = 0,代表参数从R(A+1)一直到栈顶 else { int stackTop = luaState.GetStackTop(); for (int i = a; i < a + stackTop; i++) { luaState.PushValueFromIndex(i); } //参数就是从栈顶一直到R(A + 1) return(luaState.GetStackTop() - luaState.RegsiterCount() - 1); } }