稍微简单的记录一下,一般出现这种问题都是cs端的object 对象为null,但是lua端还拿着该对象的引用且不为nil,导致lua cs 内部通过反射调用 methodbase.invoke() 方法时target为null。
所以以后需要注意的是尽量避免在cs端管理对象的生命周期-如果lua端需要调用该cs的对象。lua中的对象尽量在lua端去管理。如果没办法,尽量在cs端创建一个判断lua端持有的cs对象是否为空的方法如:
lua:
function IsObjectNil(obj)
if obj == nil then
return true
end
return CS.XXX.IsNull(obj)
end
cs:
public static bool IsNull(object obj)
{
if(obj == null)
return true;
return obj.equals(null)
}