本例讲解的是在lua中使用C#中的数组。lua代码片段中,大体上涉及了:
1、获取数组的长度,
2、获取数组的元素,
3、迭代数组,转化数组为table,
4、查找指定元素,
5、获取指定元素的序号等等。
获取到function后,调用该方法。本例中将调用步骤拆开了:
a、调用BeginPCall()方法;
b、调用Push()方法,将参数传递进去;
c、调用PCall();
d、调用CheckNumber(),CheckString(),CheckBoolean()等方法获取返回值;
e、调用EndCall()方法结束本次调用。
接下来调用了一个LazyCall()方法,如下图:
从输出结果来看,该方法也是调用了lua中的方法。该方法是已经被废弃的。
结合之前的文章,这里总结一下调用lua中方法的几种方法:
1、Invoke()方法调用,public R1 Invoke<T1, R1>(T1 arg1),有几个参数,就对应几个T泛型。返回值类型为R1。直接用LuaFunction对象调用。
2、自定义调用,需要依次调用LuaFunction的几个方法,就是文章上面介绍的5个方法。
3、调用ToDelegate方法,public T ToDelegate<T>() where T : class。创建一个委托。直接调用委托即可。
4、调用LuaState的Invoke()方法,public R1 Invoke<T1, R1>(string name, T1 arg1, bool beLogMiss),参数是function名字,方法参数,异常提示开启的bool值。