xLua
xLua copied to clipboard
如果c#类中方法参数使用了可空类型,lua层引用到这个类的时候就会报错。。
- c# 端代码
public class PlayerFire : MonoBehaviour, IPlayerFire
{
public void Summon(int bulletType, Vector3[] summonPosArray, BuffSource limitSource, int? skillId = 0)
{
.......
}
}
- lua层引用
local playerFire = player:GetComponent(typeof(CS.PlayerFire))
- 引用报错
LuaException: c# exception in xlua.import_type:System.InvalidCastException: Invalid cast from 'System.Int32' to 'System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]'.
at System.Convert.DefaultToType (System.IConvertible value, System.Type targetType, System.IFormatProvider provider) [0x00269] in <eae584ce26bc40229c1b1aa476bfa589>:0
at System.Int32.System.IConvertible.ToType (System.Type type, System.IFormatProvider provider) [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0
at System.Convert.ChangeType (System.Object value, System.Type conversionType, System.IFormatProvider provider) [0x0021b] in <eae584ce26bc40229c1b1aa476bfa589>:0
at System.Convert.ChangeType (System.Object value, System.Type conversionType) [0x0000c] in <eae584ce26bc40229c1b1aa476bfa589>:0
at XLua.OverloadMethodWrap.Init (XLua.ObjectCheckers objCheckers, XLua.ObjectCasters objCasters) [0x00246] in <7a2bc1cec0d54451a011bf7a75fa2ddb>:0
at XLua.MethodWrapsCache._GenMethodWrap (System.Type type, System.String methodName, System.Collections.Generic.IEnumerable`1[T] methodBases, System.Boolean forceCheck) [0x0005b] in <7a2bc1cec0d54451a011bf7a75fa2ddb>:0
at XLua.Utils.makeReflectionWrap (System.IntPtr L, System.Type type, System.Int32 cls_field, System.Int32 cls_getter, System.Int32 cls_setter, System.Int32 obj_field, System.Int32 obj_getter, System.Int32 obj_setter, System.Int32 obj_meta, XLua.LuaDLL.lua_CSFunction& item_getter, XLua.LuaDLL.lua_CSFunction& item_setter, System.Reflection.BindingFlags access) [0x007ca] in <7a2bc1cec0d54451a011bf7a75fa2ddb>:0
at XLua.Utils.ReflectionWrap (System.IntPtr L, System.Type type, System.Boolean privateAccessible) [0x00109] in <7a2bc1cec0d54451a011bf7a75fa2ddb>:0
at XLua.ObjectTranslator.TryDelayWrapLoader (System.IntPtr L, System.Type type) [0x000ec] in <7a2bc1cec0d54451a011bf7a75fa2ddb>:0
at XLua.ObjectTranslator.getTypeId (System.IntPtr L, System.Type type, System.Boolean& is_first, XLua.ObjectTranslator+LOGLEVEL log_level) [0x000e7] in <7a2bc1cec0d54451a011bf7a75fa2ddb>:0
at XLua.ObjectTranslator.GetTypeId (System.IntPtr L, System.Type type) [0x00001] in <7a2bc1cec0d54451a011bf7a75fa2ddb>:0
at XLua.StaticLuaCallbacks.ImportType (System.IntPtr L) [0x0002b] in <7a2bc1cec0d54451a011bf7a75fa2ddb>:0