目录
一、将报错的类从白名单去除
找到配置白名单列表生成wrap的脚本,如下代码段为“白名单”
[LuaCallCSharp]
public static readonly List<System.Type> LuaCallCSharp = new List<System.Type>()
{
typeof(System.Delegate),
typeof(System.Object),
//typeof(System.Type), //直接注释或去掉,移除掉报错的类型
}
二、将报错的类的成员(指方法、字段或属性)写入黑名单
// 黑名单
[BlackList]
public static List<List<string>> BlackList = new List<List<string>>()
{
// 屏蔽 Editor 专用代码,以避免打包编译错误
new List<string>() {"System.Type","IsSZArray"},
new List<string>() {"UnityEngine.ParticleSystem", "SetParticles" },
new List<string>() {"UnityEngine.ParticleSystem", "GetParticles" },
new List<string>() {"UIWidget", "showHandles"},
new List<string>() {"UIWidget", "showHandlesWithMoveTool"},
new List<string>() {"UnityEngine.MonoBehaviour", "runInEditMode"},
new List<string>() {"UnityEngine.UI.Graphic", "OnRebuildRequested"},
};
三、特殊Wrap(泛型相关)的报错(留坑)
四、注意事项
注意导入Xlua包到Unity后,在XLua文件夹下的Example文件夹要删除掉,因为这个Example文件夹内也有白名单、黑名单代码,会扰乱项目自身的白名单、黑名单,所以要删除这个Example文件夹,它里面都是一些范例,都是可以放心删除的内容。