private string luaString = @"
function tset(array)
--array是c#传进来的数组
len = array.Length --获取数组的长度
for i=0,len-1,1 do
print(array[i]) --和c#数组一样的下标方式访问
end
arrTable = array:ToTable()
for i=1,#arrTable do
print(arrTable[i])
end
iter = array:GetEnumerator()
while iter:MoveNext() do
print(iter.Current)
end
print(array:IndexOf(6))
end
";
// Use this for initialization
void Start () {
LuaState lua = new LuaState ();
lua.Start ();
lua.DoString (luaString);
int[] vals = { 1, 3, 5, 4, 6, 1 };
LuaFunction func = lua ["tset"] as LuaFunction;
func.BeginPCall ();
func.Push (vals);
func.PCall ();
func.EndPCall ();
func.Dispose ();
lua.Dispose ();
func = null;
lua = null;
}这里有三种遍历的方式,传入的c#数组,直接安装c#的数组那般使用就行了
也可以转换成Table,还有一个更灵活的GetEnumberator()方法
IndexOf()方法查找元素的下标,从0开始的(C#)